export interface TokenValidationResponse {
    valid: boolean;
    decoded?: {
        sub: string;
        email: string;
        roles: string[];
        [key: string]: any;
    };
    error?: string;
}
export interface UserInfo {
    id: string;
    email: string;
    firstName?: string;
    lastName?: string;
    roles: string[];
    permissions?: string[];
}
export interface AuthResponse {
    access_token: string;
    refresh_token: string;
    user: UserInfo;
}
export interface PermissionCheckResponse {
    hasPermission: boolean;
    missingPermissions?: string[];
}
export interface RoleCheckResponse {
    hasRoles: boolean;
    missingRoles?: string[];
}
export interface AuthServiceConfig {
    authServiceUrl: string;
    jwtConfig?: {
        secret?: string;
        expiresIn?: string;
        issuer?: string;
        audience?: string;
    };
}
