import type { ConfigManager } from '../config/manager.js';
import type { ServiceRegistry } from '../config/service-registry.js';
import type { AgentRecord } from '../tools/agent/index.js';
import type { AgentManager } from '../tools/agent/index.js';
import type { SharedSessionBroker } from '../control-plane/index.js';
import type { RouteBindingManager, ChannelPolicyManager } from '../channels/index.js';
import type { GenericWebhookAdapterContext, SurfaceAdapterContext } from '../adapters/index.js';
import type { AutomationManager } from '../automation/index.js';
import type { ChannelPolicyDecision, ChannelIngressPolicyInput } from '../channels/index.js';
interface DaemonSurfaceActionContext {
    readonly serviceRegistry: ServiceRegistry;
    readonly configManager: ConfigManager;
    readonly routeBindings: RouteBindingManager;
    readonly sessionBroker: SharedSessionBroker;
    readonly channelPolicy: ChannelPolicyManager;
    readonly automationManager: AutomationManager;
    readonly agentManager: AgentManager;
    readonly trySpawnAgent: (input: Parameters<AgentManager['spawn']>[0], logLabel?: string, sessionId?: string) => AgentRecord | Response;
    readonly queueSurfaceReplyFromBinding: (binding: import('@pellux/goodvibes-sdk/platform/automation/routes').AutomationRouteBinding | undefined, input: {
        readonly agentId: string;
        readonly task: string;
        readonly sessionId?: string;
    }) => void;
    readonly queueWebhookReply: (input: {
        readonly agentId: string;
        readonly task: string;
        readonly sessionId?: string;
        readonly routeId?: string;
        readonly callbackUrl?: string;
        readonly callbackCorrelationId?: string;
        readonly callbackSignature?: import('./types.js').PendingSurfaceReply['callbackSignature'];
    }) => void;
    readonly surfaceDeliveryEnabled: (surface: 'slack' | 'discord' | 'ntfy' | 'webhook' | 'telegram' | 'google-chat' | 'signal' | 'whatsapp' | 'imessage' | 'msteams' | 'bluebubbles' | 'mattermost' | 'matrix') => boolean;
    readonly signWebhookPayload: (body: string, secret: string) => string;
    readonly handleApprovalAction: (approvalId: string, action: 'claim' | 'approve' | 'deny' | 'cancel', req: Request) => Promise<Response>;
}
export declare class DaemonSurfaceActionHelper {
    private readonly context;
    constructor(context: DaemonSurfaceActionContext);
    buildSurfaceAdapterContext(): SurfaceAdapterContext;
    buildGenericWebhookAdapterContext(): GenericWebhookAdapterContext;
    authorizeSurfaceIngress(input: ChannelIngressPolicyInput): Promise<ChannelPolicyDecision>;
    parseSurfaceControlCommand(text: string): {
        readonly action: 'status' | 'cancel' | 'retry';
        readonly id: string;
    } | null;
    performSurfaceControlCommand(command: {
        readonly action: 'status' | 'cancel' | 'retry';
        readonly id: string;
    }): Promise<string>;
    performInteractiveSurfaceAction(actionId: string, surface: 'slack' | 'discord', req: Request): Promise<string>;
}
export {};
//# sourceMappingURL=surface-actions.d.ts.map