import { type NewSessionOptions } from '../../agent-adapter/claude/tmux-control.js'; import { LoginFlowError, type AuthInteraction, type LoginOutcome } from './login-flow.js'; export declare const CLAUDE_SUBSCRIPTION_TIMEOUT_MS: number; interface SubscriptionTmux { newSession(options: NewSessionOptions): void; hasSession(name: string): boolean; capturePane(name: string): string; pasteText(name: string, value: string): void; sendKeys(name: string, ...keys: string[]): void; killSession(name: string): void; } export interface ClaudeSubscriptionLoginDependencies { tmux?: SubscriptionTmux; claudeExecutable?: string; cwd?: string; sessionName?: () => string; saveToken?: (token: string, expiresAt: string, signal?: AbortSignal) => Promise; reloadAuth?: () => void; publishRecovered?: (input: { backend: 'claude'; provider: string; }) => void; now?: () => number; sleep?: (milliseconds: number) => Promise; timeoutMs?: number; pollIntervalMs?: number; submitDelayMs?: number; } export interface ClaudeSubscriptionLoginOutcome extends LoginOutcome { provider: 'anthropic'; authType: 'oauth'; expiresAt: string; detail: string; } export declare class ClaudeSubscriptionLoginError extends LoginFlowError { } export declare function loginClaudeSubscription(interaction: AuthInteraction, dependencies?: ClaudeSubscriptionLoginDependencies): Promise; export {};