import type { CopilotAccountIdentity } from './copilot-accounts-types.ts'; export declare const SESSION_ACCOUNTS_MAX = 2048; export interface SessionAccountPreference { readonly sessionId: string; readonly accountId: string; } export interface SessionAccountSelection { readonly accountId: string; readonly source: 'global' | 'session'; } export interface TurnAccountEvidence extends SessionAccountSelection { readonly identity?: CopilotAccountIdentity; } interface Admission extends SessionAccountSelection { readonly turn: number; readonly signal: AbortSignal; } export declare function parseSessionAccounts(value: unknown): readonly SessionAccountPreference[]; export declare function resolveSessionAccount(sessionId: string, preferences: readonly SessionAccountPreference[], globalAccountId: string): SessionAccountSelection; /** Active turns are never evicted; bounded historical evidence may become unknown. */ export declare class SessionAccountTurns { private readonly active; private readonly signals; private readonly identities; private readonly history; admit(agent: object, turn: number, signal: AbortSignal, selection: SessionAccountSelection): Admission; record(agent: object, turn: number, identity?: CopilotAccountIdentity): void; current(agent: object): Admission | undefined; forSignal(signal: AbortSignal): Admission | undefined; evidence(agent: object, turn: number): TurnAccountEvidence | undefined; end(agent: object, turn: number): void; remove(agent: object): void; clear(): void; recordSignal(signal: AbortSignal, identity?: CopilotAccountIdentity): void; captureIdentity(signal: AbortSignal, identity: CopilotAccountIdentity): void; } export {}; //# sourceMappingURL=session-accounts.d.ts.map