import type { ManagedAccount, MultiAccountConfig } from "./types.js"; export declare class AccountManager { private accounts; private activeIndex; private roundRobinCursor; private strategyInitialized; private config; constructor(config?: Partial); loadFromDisk(): Promise; saveToDisk(): Promise; importFromOpenCodeAuth(): Promise; addAccount(email: string | undefined, refreshToken: string, accessToken?: string, expires?: number): Promise; getAllAccounts(): ManagedAccount[]; getAccountCount(): number; getNextAvailableAccount(model?: string): Promise; getNextAvailableAccountForNewSession(model?: string): Promise; private selectNextAvailableAccount; private normalizeIndex; private initializeStrategyState; private isAccountAvailable; private getLeastRateLimitedAccount; markRateLimited(account: ManagedAccount, retryAfterMs: number, model?: string): void; markRefreshFailed(account: ManagedAccount, error: string): void; removeAccount(account: ManagedAccount): void; updateAccountTokens(account: ManagedAccount, accessToken: string, refreshToken: string, expires: number): Promise; ensureValidToken(account: ManagedAccount): Promise; getActiveAccount(): ManagedAccount | null; /** * Get the next available account excluding the specified account indices. * Used for model fallback retry logic - try other accounts before falling back to older model. */ getNextAvailableAccountExcluding(excludeIndices: Set, model?: string): Promise; /** * Check if an account supports a specific model based on plan type. * GPT-5.3-codex requires Plus/Pro/Team - free accounts don't support it. */ accountSupportsModel(account: ManagedAccount, model: string): boolean; /** * Get accounts that might support a model (non-free for gpt-5.3-*) */ getAccountsSupportingModel(model: string): ManagedAccount[]; } //# sourceMappingURL=manager.d.ts.map