import type { StepOutcome } from './trajectory.js';
import type { AgentDefinition, WorkflowStepRow } from './types.js';
type StepStateLike = {
    row: Pick<WorkflowStepRow, 'agentName' | 'status'>;
};
export interface ChannelRelayLike {
    send(to: string, text: string): Promise<unknown>;
}
export interface ChannelMessengerOptions {
    postFn?: (text: string) => void;
}
export declare function sendToChannel(relay: ChannelRelayLike, channel: string, message: string): Promise<void>;
export declare function truncateMessage(message: string, maxLength: number): string;
export declare function formatStepOutput(stepName: string, output: string, maxLength?: number): string;
export declare function formatError(stepName: string, error: unknown): string;
export declare function scrubSecrets(text: string): string;
export declare function scrubForChannel(text: string): string;
export declare class ChannelMessenger {
    private readonly postFn?;
    constructor(options?: ChannelMessengerOptions);
    buildNonInteractiveAwareness(agentMap: Map<string, AgentDefinition>, stepStates: Map<string, StepStateLike>): string | undefined;
    buildRelayRegistrationNote(cli: string, agentName: string): string;
    buildDelegationGuidance(cli: string, timeoutMs?: number): string;
    postCompletionReport(workflowName: string, outcomes: StepOutcome[], summary: string, confidence: number): void;
    postFailureReport(workflowName: string, outcomes: StepOutcome[], errorMsg: string): void;
}
export {};
//# sourceMappingURL=channel-messenger.d.ts.map