import { DeleteInvitationBody } from './auth-invitations-delete.js';
export { DeleteInvitationResponse } from './auth-invitations-delete.js';
import { ResendInvitationBody } from './auth-invitations-resend.js';
export { ResendInvitationResponse } from './auth-invitations-resend.js';
import { CancelInvitationBody } from './auth-invitations-cancel.js';
export { CancelInvitationResponse } from './auth-invitations-cancel.js';
import { AcceptInvitationBody } from './auth-invitations-accept.js';
export { AcceptInvitationResponse } from './auth-invitations-accept.js';
import { GetInvitationParams, CreateInvitationBody, ListInvitationsQuery } from './auth-invitations.js';
export { CreateInvitationResponse, GetInvitationResponse, ListInvitationsResponse } from './auth-invitations.js';
import { GetMeBody } from './auth-me.js';
export { GetMeResponse } from './auth-me.js';
import { ChangePasswordBody } from './auth-password.js';
export { ChangePasswordResponse } from './auth-password.js';
import { RotateKeyBody } from './auth-keys-rotate.js';
export { RotateKeyResponse } from './auth-keys-rotate.js';
import { LogoutBody } from './auth-logout.js';
export { LogoutResponse } from './auth-logout.js';
import { LoginBody } from './auth-login.js';
export { LoginResponse } from './auth-login.js';
import { RegisterBody } from './auth-register.js';
export { RegisterResponse } from './auth-register.js';
import { CheckAccountExistsBody } from './auth-exists.js';
export { CheckAccountExistsResponse } from './auth-exists.js';
import { VerifyCodeBody } from './auth-codes-verify.js';
export { VerifyCodeResponse } from './auth-codes-verify.js';
import { SendVerificationCodeBody } from './auth-codes.js';
export { SendVerificationCodeResponse } from './auth-codes.js';
export { client } from '@spfn/core/client';
import '@spfn/core';
import '../contracts/invitation.js';
import '@sinclair/typebox';
import '../contracts/auth.js';

/**
 * Type-safe API client
 */
declare const authApi: {
    readonly sendVerificationCode: (options: {
        body: SendVerificationCodeBody;
    }) => Promise<{
        success: false;
        error: {
            details?: any;
            message: string;
            code: string;
        };
    } | {
        message?: string | undefined;
        success: true;
        data: {
            success: boolean;
            expiresAt: string;
        };
    }>;
    readonly verifyCode: (options: {
        body: VerifyCodeBody;
    }) => Promise<{
        success: false;
        error: {
            details?: any;
            message: string;
            code: string;
        };
    } | {
        message?: string | undefined;
        success: true;
        data: {
            verificationToken?: string | undefined;
            valid: boolean;
        };
    }>;
    readonly checkAccountExists: (options: {
        body: CheckAccountExistsBody;
    }) => Promise<{
        success: false;
        error: {
            details?: any;
            message: string;
            code: string;
        };
    } | {
        message?: string | undefined;
        success: true;
        data: {
            exists: boolean;
            identifier: string;
            identifierType: "email" | "phone";
        };
    }>;
    readonly register: (options: {
        body: RegisterBody;
    }) => Promise<{
        success: false;
        error: {
            details?: any;
            message: string;
            code: string;
        };
    } | {
        message?: string | undefined;
        success: true;
        data: {
            email?: string | undefined;
            phone?: string | undefined;
            userId: string;
        };
    }>;
    readonly login: (options: {
        body: LoginBody;
    }) => Promise<{
        message?: string | undefined;
        success: true;
        data: {
            email?: string | undefined;
            phone?: string | undefined;
            userId: string;
            passwordChangeRequired: boolean;
        };
    } | {
        success: false;
        error: {
            details?: any;
            message: string;
            code: string;
        };
    }>;
    readonly logout: (options: {
        body: LogoutBody;
    }) => Promise<{
        success: false;
        error: {
            details?: any;
            message: string;
            code: string;
        };
    } | {
        message?: string | undefined;
        success: true;
        data: {
            success: boolean;
        };
    }>;
    readonly rotateKey: (options: {
        body: RotateKeyBody;
    }) => Promise<{
        success: false;
        error: {
            details?: any;
            message: string;
            code: string;
        };
    } | {
        message?: string | undefined;
        success: true;
        data: {
            success: boolean;
            keyId: string;
        };
    }>;
    readonly changePassword: (options: {
        body: ChangePasswordBody;
    }) => Promise<{
        success: false;
        error: {
            details?: any;
            message: string;
            code: string;
        };
    } | {
        message?: string | undefined;
        success: true;
        data: {
            success: boolean;
        };
    }>;
    readonly getMe: (options: {
        body: GetMeBody;
    }) => Promise<{
        success: false;
        error: {
            details?: any;
            message: string;
            code: string;
        };
    } | {
        message?: string | undefined;
        success: true;
        data: {
            email?: string | undefined;
            phone?: string | undefined;
            userId: string;
            role: {
                id: number;
                name: string;
                displayName: string;
                priority: number;
            };
            permissions: {
                category?: string | undefined;
                id: number;
                name: string;
                displayName: string;
            }[];
        };
    }>;
    readonly getInvitation: (options: {
        params: GetInvitationParams;
    }) => Promise<{
        success: false;
        error: {
            details?: any;
            message: string;
            code: string;
        };
    } | {
        message?: string | undefined;
        success: true;
        data: {
            metadata?: any;
            email: string;
            expiresAt: string;
            role: string;
            roleDisplayName: string;
            invitedBy: string;
        };
    }>;
    readonly createInvitation: (options: {
        body: CreateInvitationBody;
    }) => Promise<{
        success: false;
        error: {
            details?: any;
            message: string;
            code: string;
        };
    } | {
        message?: string | undefined;
        success: true;
        data: {
            email: string;
            expiresAt: string;
            id: number;
            token: string;
            roleId: number;
            invitationUrl: string;
        };
    }>;
    readonly listInvitations: (options: {
        query?: ListInvitationsQuery;
    }) => Promise<{
        success: false;
        error: {
            details?: any;
            message: string;
            code: string;
        };
    } | {
        message?: string | undefined;
        success: true;
        data: {
            page: number;
            limit: number;
            invitations: {
                acceptedAt?: string | undefined;
                cancelledAt?: string | undefined;
                email: string;
                expiresAt: string;
                role: {
                    id: number;
                    name: string;
                    displayName: string;
                };
                id: number;
                status: string;
                inviter: {
                    email: string;
                    id: number;
                };
                createdAt: string;
            }[];
            total: number;
            totalPages: number;
        };
    }>;
    readonly acceptInvitation: (options: {
        body: AcceptInvitationBody;
    }) => Promise<{
        success: false;
        error: {
            details?: any;
            message: string;
            code: string;
        };
    } | {
        message?: string | undefined;
        success: true;
        data: {
            email: string;
            userId: number;
            role: string;
        };
    }>;
    readonly cancelInvitation: (options: {
        body: CancelInvitationBody;
    }) => Promise<{
        success: false;
        error: {
            details?: any;
            message: string;
            code: string;
        };
    } | {
        message?: string | undefined;
        success: true;
        data: {
            success: boolean;
            cancelledAt: string;
        };
    }>;
    readonly resendInvitation: (options: {
        body: ResendInvitationBody;
    }) => Promise<{
        success: false;
        error: {
            details?: any;
            message: string;
            code: string;
        };
    } | {
        message?: string | undefined;
        success: true;
        data: {
            success: boolean;
            expiresAt: string;
        };
    }>;
    readonly deleteInvitation: (options: {
        body: DeleteInvitationBody;
    }) => Promise<{
        success: false;
        error: {
            details?: any;
            message: string;
            code: string;
        };
    } | {
        message?: string | undefined;
        success: true;
        data: {
            success: boolean;
        };
    }>;
};

export { AcceptInvitationBody, CancelInvitationBody, ChangePasswordBody, CheckAccountExistsBody, CreateInvitationBody, DeleteInvitationBody, GetInvitationParams, GetMeBody, ListInvitationsQuery, LoginBody, LogoutBody, RegisterBody, ResendInvitationBody, RotateKeyBody, SendVerificationCodeBody, VerifyCodeBody, authApi };
