import { LaravelApiService } from './laravel-api.service';
import { AuthenticatedUser } from '../auth/interfaces/jwt-payload.interface';
export declare class LaravelApiController {
    private readonly laravelApiService;
    private readonly logger;
    constructor(laravelApiService: LaravelApiService);
    checkHealth(user: AuthenticatedUser, token: string): {
        message: string;
        user: {
            id: string;
            type: "user" | "client";
            tokenData: Record<string, unknown>;
        };
        tokenAvailable: boolean;
    };
    validateToken(token: string, user: AuthenticatedUser): Promise<{
        valid: boolean;
        bffUser: AuthenticatedUser;
        laravelUser: unknown;
        message: string;
        error?: undefined;
    } | {
        valid: boolean;
        error: string;
        bffUser: AuthenticatedUser;
        laravelUser?: undefined;
        message?: undefined;
    }>;
    getUserProfile(token: string, uuid: string, email: string, name: string): Promise<{
        source: string;
        tokenData: {
            uuid: string;
            email: string;
            name: string;
        };
        laravelData: unknown;
    }>;
    getClientProfile(token: string, tokenData: Record<string, any>): Promise<{
        source: string;
        tokenData: Record<string, any>;
        laravelData: unknown;
    }>;
    proxyRequest(endpoint: string, body: {
        method?: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE';
        data?: any;
        params?: Record<string, any>;
        headers?: Record<string, string>;
    }, token: string, user: AuthenticatedUser): Promise<{
        source: string;
        endpoint: string;
        method: "GET" | "POST" | "PUT" | "PATCH" | "DELETE";
        bffUser: {
            id: string;
            type: "user" | "client";
            tokenData: Record<string, unknown>;
        };
        response: unknown;
        status: number;
    }>;
    debugToken(user: AuthenticatedUser, token: string, tokenData: Record<string, any>, jwtPayload: Record<string, any>, uuid: string, email: string, name: string): {
        message: string;
        data: {
            user: {
                id: string;
                type: "user" | "client";
                expiresAt: Date;
                issuedAt: Date;
            };
            rawToken: string;
            tokenData: Record<string, any>;
            jwtPayload: Record<string, any>;
            extractedFields: {
                uuid: string;
                email: string;
                name: string;
            };
            tokenLength: number;
            tokenParts: number;
        };
    };
    testUserEndpoint(token: string): Promise<{
        message: string;
        response: unknown;
        status: number;
    }>;
    testClientEndpoint(token: string): Promise<{
        message: string;
        response: unknown;
        status: number;
    }>;
}
