import type { Session, Message, CreateSessionRequest, SendMessageRequest, SendMessageResponse, GitStatusResponse, GitDiffResponse, GitStageResponse, GitUnstageResponse, GitCommitResponse, GitGenerateCommitMessageResponse, GitBranchInfo, GitPushResponse, UpdateSessionRequest, AllModelsResponse, SessionFilesResponse, CreateBranchRequest, BranchResult, ListBranchesResponse, ParentSessionResponse, ShareStatus, ShareSessionResponse, SyncSessionResponse } from '../types/api';
/**
 * Configure the API client with the correct base URL
 * This should be called once at application startup
 */
export declare function configureApiClient(): void;
declare class ApiClient {
    private get baseUrl();
    getSessions(): Promise<Session[]>;
    createSession(data: CreateSessionRequest): Promise<Session>;
    updateSession(sessionId: string, data: UpdateSessionRequest): Promise<Session>;
    deleteSession(sessionId: string): Promise<{
        success: boolean;
    }>;
    abortSession(sessionId: string): Promise<{
        success: boolean;
    }>;
    abortMessage(sessionId: string, messageId: string): Promise<{
        success: boolean;
        wasRunning: boolean;
        messageId: string;
    }>;
    getQueueState(sessionId: string): Promise<{
        currentMessageId: string | null;
        queuedMessages: Array<{
            messageId: string;
            position: number;
        }>;
        isRunning: boolean;
    }>;
    removeFromQueue(sessionId: string, messageId: string): Promise<{
        success: boolean;
        removed: boolean;
        wasQueued?: boolean;
        wasRunning?: boolean;
    }>;
    getMessages(sessionId: string): Promise<Message[]>;
    sendMessage(sessionId: string, data: SendMessageRequest): Promise<SendMessageResponse>;
    getStreamUrl(sessionId: string): string;
    getConfig(): Promise<{
        agents: string[];
        providers: string[];
        defaults: {
            agent: string;
            provider: string;
            model: string;
            toolApproval?: 'auto' | 'dangerous' | 'all';
        };
    }>;
    getModels(providerId: string): Promise<{
        models: Array<{
            id: string;
            label: string;
            toolCall?: boolean;
        }>;
        default: string;
    }>;
    getAllModels(): Promise<AllModelsResponse>;
    updateDefaults(data: {
        agent?: string;
        provider?: string;
        model?: string;
        toolApproval?: 'auto' | 'dangerous' | 'all';
        scope?: 'global' | 'local';
    }): Promise<{
        success: boolean;
        defaults: {
            agent: string;
            provider: string;
            model: string;
            toolApproval?: 'auto' | 'dangerous' | 'all';
        };
    }>;
    getGitStatus(): Promise<GitStatusResponse>;
    getGitDiff(file: string, staged?: boolean): Promise<GitDiffResponse>;
    generateCommitMessage(sessionId?: string): Promise<GitGenerateCommitMessageResponse>;
    stageFiles(files: string[]): Promise<GitStageResponse>;
    unstageFiles(files: string[]): Promise<GitUnstageResponse>;
    restoreFiles(files: string[]): Promise<{
        restored: string[];
    }>;
    deleteFiles(files: string[]): Promise<{
        deleted: string[];
    }>;
    commitChanges(message: string): Promise<GitCommitResponse>;
    getGitBranch(): Promise<GitBranchInfo>;
    pushCommits(): Promise<GitPushResponse>;
    listFiles(): Promise<{
        files: string[];
        changedFiles: Array<{
            path: string;
            status: string;
        }>;
        truncated: boolean;
    }>;
    getSessionFiles(sessionId: string): Promise<SessionFilesResponse>;
    createBranch(sessionId: string, data: CreateBranchRequest): Promise<BranchResult>;
    listBranches(sessionId: string): Promise<ListBranchesResponse>;
    getParentSession(sessionId: string): Promise<ParentSessionResponse>;
    getSetuBalance(): Promise<{
        walletAddress: string;
        balance: number;
        totalSpent: number;
        totalTopups: number;
        requestCount: number;
    } | null>;
    getSetuWallet(): Promise<{
        configured: boolean;
        publicKey?: string;
        error?: string;
    }>;
    getSetuUsdcBalance(network?: 'mainnet' | 'devnet'): Promise<{
        walletAddress: string;
        usdcBalance: number;
        network: 'mainnet' | 'devnet';
    } | null>;
    getShareStatus(sessionId: string): Promise<ShareStatus>;
    shareSession(sessionId: string): Promise<ShareSessionResponse>;
    syncSession(sessionId: string): Promise<SyncSessionResponse>;
    approveToolCall(sessionId: string, callId: string, approved: boolean): Promise<{
        ok: boolean;
        callId: string;
        approved: boolean;
    }>;
    getPendingApprovals(sessionId: string): Promise<{
        ok: boolean;
        pending: Array<{
            callId: string;
            toolName: string;
            args: unknown;
            messageId: string;
            createdAt: number;
        }>;
    }>;
    getPolarTopupEstimate(amount: number): Promise<{
        creditAmount: number;
        chargeAmount: number;
        feeAmount: number;
        feeBreakdown: {
            basePercent: number;
            internationalPercent: number;
            fixedCents: number;
        };
    } | null>;
    createPolarCheckout(amount: number, successUrl: string): Promise<{
        success: boolean;
        checkoutId: string;
        checkoutUrl: string;
        creditAmount: number;
        chargeAmount: number;
        feeAmount: number;
    }>;
    selectTopupMethod(sessionId: string, method: 'crypto' | 'fiat'): Promise<{
        success: boolean;
        method: string;
    }>;
    cancelTopup(sessionId: string, reason?: string): Promise<{
        success: boolean;
    }>;
    getPendingTopup(sessionId: string): Promise<{
        hasPending: boolean;
        sessionId?: string;
        messageId?: string;
        amountUsd?: number;
        currentBalance?: number;
        createdAt?: number;
    }>;
    getPolarTopupStatus(checkoutId: string): Promise<{
        checkoutId: string;
        confirmed: boolean;
        amountUsd: number | null;
        confirmedAt: string | null;
    } | null>;
    retryMessage(sessionId: string, messageId: string): Promise<{
        success: boolean;
        messageId: string;
    }>;
    getAuthStatus(): Promise<{
        onboardingComplete: boolean;
        setu: {
            configured: boolean;
            publicKey?: string;
        };
        providers: Record<string, {
            configured: boolean;
            type?: 'api' | 'oauth' | 'wallet';
            label: string;
            supportsOAuth: boolean;
            modelCount: number;
            costRange?: {
                min: number;
                max: number;
            };
        }>;
        defaults: {
            agent: string;
            provider: string;
            model: string;
            toolApproval?: 'auto' | 'dangerous' | 'all';
        };
    }>;
    setupSetuWallet(): Promise<{
        success: boolean;
        publicKey: string;
        isNew: boolean;
    }>;
    importSetuWallet(privateKey: string): Promise<{
        success: boolean;
        publicKey: string;
    }>;
    addProvider(provider: string, apiKey: string): Promise<{
        success: boolean;
        provider: string;
    }>;
    removeProvider(provider: string): Promise<{
        success: boolean;
        provider: string;
    }>;
    completeOnboarding(): Promise<{
        success: boolean;
    }>;
    getOAuthStartUrl(provider: string, mode?: string): string;
    getOAuthUrl(provider: string, mode?: string): Promise<{
        url: string;
        sessionId: string;
        provider: string;
    }>;
    exchangeOAuthCode(provider: string, code: string, sessionId: string): Promise<{
        success: boolean;
        provider: string;
    }>;
}
export declare const apiClient: ApiClient;
export {};
//# sourceMappingURL=api-client.d.ts.map