import type { ChannelApprovalNativeDeliveryPlan, ChannelApprovalNativePlannedTarget } from "./approval-native-delivery.js"; import type { ChannelApprovalKind } from "./approval-types.js"; import type { ExecApprovalRequest } from "./exec-approvals.js"; import type { PluginApprovalRequest } from "./plugin-approvals.js"; type GatewayRequestFn = (method: string, params: Record) => Promise; type ApprovalRequest = ExecApprovalRequest | PluginApprovalRequest; export declare function hasActiveApprovalNativeRouteRuntime(params: { approvalKind: ChannelApprovalKind; channel?: string | null; accountId?: string | null; }): boolean; export declare function createApprovalNativeRouteReporter(params: { handledKinds: ReadonlySet; channel?: string; channelLabel?: string; accountId?: string | null; requestGateway: GatewayRequestFn; }): { observeRequest(payload: { approvalKind: ChannelApprovalKind; request: ApprovalRequest; }): void; start(): void; reportSkipped(params: { approvalKind: ChannelApprovalKind; request: ApprovalRequest; }): Promise; reportDelivery(params: { approvalKind: ChannelApprovalKind; request: ApprovalRequest; deliveryPlan: ChannelApprovalNativeDeliveryPlan; deliveredTargets: readonly ChannelApprovalNativePlannedTarget[]; }): Promise; stop(): Promise; }; export declare function clearApprovalNativeRouteStateForTest(): void; export {};