import type { TargetCredentialStore } from './credential-store.js'; import type { Clock } from './device-flow.js'; import { type TargetSessionDeps } from './target-session-manager.js'; import type { SettingsPort, TargetRecord } from './target-registry.js'; export { LoginRequiredError, TargetSessionManager, type BrowserOpener, type TargetSessionDeps, type TargetSessionManagerInit, } from './target-session-manager.js'; export interface TargetAccessTokenProvider { getAccessToken(signal?: AbortSignal): Promise; } type LegacySessionDeps = Pick & { readonly settings?: SettingsPort; readonly targetName?: string; readonly clock?: Clock; }; type TargetLoginArgs = readonly [ targetName: string, target: TargetRecord, credentialStore: TargetCredentialStore, acquireLock: () => Promise<() => Promise>, settings: SettingsPort, deps: TargetSessionDeps ]; type RefreshAccessArgs = readonly [ targetName: string, target: TargetRecord, credentialStore: TargetCredentialStore, acquireLock: () => Promise<() => Promise>, deps: LegacySessionDeps, clock?: Clock ]; type RevokeArgs = readonly [ target: TargetRecord, credentialStore: TargetCredentialStore, acquireLock: () => Promise<() => Promise>, deps: LegacySessionDeps, force: boolean ]; export declare function targetLogin(...args: TargetLoginArgs): Promise<{ organization: { id: string; }; }>; export declare function refreshAccessToken(...args: RefreshAccessArgs): Promise<{ accessToken: string; expiresIn: number; }>; export declare function getAccessTokenProvider(...args: RefreshAccessArgs): TargetAccessTokenProvider; export declare function revokeAndCleanup(...args: RevokeArgs): Promise;