import type { AutomationRouteBinding } from '../../automation/routes.js';
import type { SharedApprovalRecord } from '../../control-plane/index.js';
import type { ProviderRuntimeSurface } from '../provider-runtime.js';
import type { ChannelAccountRecord, ChannelCapabilityDescriptor, ChannelDirectoryEntry, ChannelDirectoryQueryOptions, ChannelOperatorActionDescriptor, ChannelSurface, ChannelToolDescriptor } from '../types.js';
import type { ChannelPlugin } from '../plugin-registry.js';
import type { BuiltinChannelRuntimeDeps, ManagedSurface } from './shared.js';
interface BuiltinPluginRegistrationContext {
    readonly deps: BuiltinChannelRuntimeDeps;
    readonly buildAccount: (surface: ChannelSurface) => Promise<ChannelAccountRecord>;
    readonly resolveAccount: (surface: ChannelSurface, accountId: string) => Promise<ChannelAccountRecord | null>;
    readonly listCapabilities: (surface: ChannelSurface) => Promise<ChannelCapabilityDescriptor[]>;
    readonly listTools: (surface: ChannelSurface) => ChannelToolDescriptor[];
    readonly runTool: (surface: ChannelSurface, toolId: string, input?: Record<string, unknown>) => Promise<unknown>;
    readonly listOperatorActions: (surface: ChannelSurface) => ChannelOperatorActionDescriptor[];
    readonly runOperatorAction: (surface: ChannelSurface, actionId: string, input?: Record<string, unknown>) => Promise<unknown>;
    readonly buildContractHooks: (surface: ChannelSurface) => Pick<ChannelPlugin, 'setupVersion' | 'renderPolicy' | 'getSetupSchema' | 'doctor' | 'listRepairActions' | 'getLifecycleState' | 'resolveAllowlist' | 'editAllowlist'>;
    readonly buildProductHooks: (surface: ChannelSurface) => Pick<ChannelPlugin, 'runAccountAction' | 'authorizeActorAction' | 'parseExplicitTarget' | 'inferTargetConversationKind' | 'resolveTarget' | 'resolveSessionTarget' | 'resolveParentConversationCandidates' | 'renderEvent' | 'listAgentTools'>;
    readonly lookupDirectory: (surface: ManagedSurface, query: string, options?: ChannelDirectoryQueryOptions) => Promise<ChannelDirectoryEntry[]>;
    readonly lookupRouteDirectory: (surface: ManagedSurface, query: string, options?: ChannelDirectoryQueryOptions) => Promise<ChannelDirectoryEntry[]>;
    readonly notifyApprovalViaRouter: (surface: ChannelSurface, approval: SharedApprovalRecord, binding: AutomationRouteBinding) => Promise<void>;
    readonly providerRuntimeStatus: (surface: ProviderRuntimeSurface) => unknown;
}
export declare function registerBuiltinChannelPlugins(context: BuiltinPluginRegistrationContext): void;
export {};
//# sourceMappingURL=plugins.d.ts.map