import type { AgentSessionInternalSurface as AgentSession } from "./agent-session-methods.ts"; import { type RecordedToolLoadout } from "./agent-session-state.ts"; import type { AgentSessionReloadOptions, ExtensionBindings } from "./agent-session-types.js"; import { ExtensionRunner } from "./extensions/index.js"; import type { ExtensionProviderTransaction, ModelRuntime } from "./model-runtime.js"; import type { PathMetadata } from "./package-manager.ts"; import type { ResourceLoader } from "./resource-loader.ts"; declare class ExtensionPublicationGate { readonly resourceLoader: ResourceLoader; private readonly effects; private readonly startEffects; private readonly commitEffects; private readonly commitFailures; readonly providerTransaction: ExtensionProviderTransaction; private commitsActivated; readonly providerIds: Set; private readonly isClosed; private readonly runner; private discarded; constructor(resourceLoader: ResourceLoader, runner: ExtensionRunner, modelRuntime: ModelRuntime, isClosed: () => boolean, replacedProviderIds: Iterable); defer(effect: () => void | Promise): void; stageStart(effect: () => void | Promise): void; stageCommit(effect: () => void): void; activateCommits(): void; drainCommitFailures(): void; activateStarts(): Promise; publishProviders(): Promise; discard(): void; release(): Promise; private publish; private report; } export declare function bindExtensions(this: AgentSession, bindings: ExtensionBindings): Promise; export declare function _waitForExtensionStart(this: AgentSession): Promise; export declare function extendResourcesFromExtensions(this: AgentSession, reason: "startup" | "reload"): Promise; export declare function buildExtensionResourcePaths(this: AgentSession, entries: Array<{ path: string; extensionPath: string; }>): Array<{ path: string; metadata: PathMetadata; }>; export declare function getExtensionSourceLabel(this: AgentSession, extensionPath: string): string; export declare function _applyExtensionBindings(this: AgentSession, runner: ExtensionRunner): void; export declare function refreshCurrentModelFromRegistry(this: AgentSession): Promise; export declare function _refreshCurrentModelFromRegistry(this: AgentSession): Promise; export declare function _bindExtensionCore(this: AgentSession, runner: ExtensionRunner, publication?: ExtensionPublicationGate, startupToolNames?: readonly string[], startupLoadout?: RecordedToolLoadout): void; export declare function reload(this: AgentSession, options?: AgentSessionReloadOptions): Promise; /** Publish approved startup resources without replacing the session or restarting safe reporters. */ export declare function completeStartupResources(this: AgentSession, resourceLoader: ResourceLoader): Promise; /** * Check if an error is retryable (overloaded, rate limit, server errors). * Context overflow errors are NOT retryable (handled by compaction instead). */ export declare const agentSessionExtensionBindingsMethods: { bindExtensions: typeof bindExtensions; _waitForExtensionStart: typeof _waitForExtensionStart; completeStartupResources: typeof completeStartupResources; extendResourcesFromExtensions: typeof extendResourcesFromExtensions; buildExtensionResourcePaths: typeof buildExtensionResourcePaths; getExtensionSourceLabel: typeof getExtensionSourceLabel; _applyExtensionBindings: typeof _applyExtensionBindings; refreshCurrentModelFromRegistry: typeof refreshCurrentModelFromRegistry; _refreshCurrentModelFromRegistry: typeof _refreshCurrentModelFromRegistry; _bindExtensionCore: typeof _bindExtensionCore; reload: typeof reload; }; export {}; //# sourceMappingURL=agent-session-extension-bindings.d.ts.map