import type { GitHubCopilotAuthorizationView as View } from './authorization-controller.ts'; export interface CompactAccountRemote { status(): Promise; start(): Promise; cancel(): Promise; signOut(): Promise; discoverModels(): Promise; ensureModels(): Promise; reconcile(): Promise; } type Operation = 'start' | 'cancel' | 'signOut' | 'discoverModels' | 'reconcile'; export declare const AUTHORIZATION_POLL_INITIAL_MS = 500; export declare const AUTHORIZATION_POLL_MAX_MS = 2000; export interface CompactAccountSnapshot { readonly view: View | undefined; readonly checking: boolean; readonly operation: Operation | undefined; readonly error: string | undefined; readonly copyState: 'idle' | 'copying' | 'copied' | 'failed'; } /** One mounted account's snapshot, bounded freshness check and explicit actions. * Initial signed-in status ensures missing/idle/stale/error metadata once or * joins loading metadata; the Host owns single flight and failure cooldown. * A confirmed user Start earns one forced discovery after sign-in completes. * No Remote call occurs during construction. Every await is fenced by lifetime * and request generation; UI disclosure changes never reconstruct this owner. */ export declare function createCompactAccount(remote: CompactAccountRemote, decode: (value: unknown) => View | undefined, copy: (code: string) => Promise): { getSnapshot: () => CompactAccountSnapshot; subscribe(listener: () => void): () => void; attach(): () => void; invalidate(): void; retryStatus: () => Promise; start: () => Promise; cancel: () => Promise; signOut: () => Promise; refreshModels: () => Promise; reconcile: () => Promise; copyCode(): Promise; }; export {}; //# sourceMappingURL=compact-account.d.ts.map