/**
 * Custom-role agent messages — extension point for app-owned message kinds
 * (compaction summaries, system notices) that ride alongside user/assistant/tool
 * entries but are projected into a plain user turn for the LLM.
 */
import type { ImageContent, TextContent } from '../ai/types.js';
export declare const CANCELLATION_BOUNDARY_CUSTOM_TYPE = "cancellationBoundary";
export declare const CANCELLATION_BOUNDARY_CONTENT = "The previous ShortcutXL run was cancelled by the user before it completed. Do not continue the interrupted operation unless the user explicitly asks.";
/** App-defined message variant carried through the agent transcript. */
export interface CustomMessage<T = unknown> {
    role: 'custom';
    customType: string;
    content: string | (TextContent | ImageContent)[];
    display: boolean;
    details?: T;
    timestamp: number;
}
declare module './core-types.js' {
    interface CustomAgentMessages {
        custom: CustomMessage;
    }
}
/** Produce the post-compaction summary marker the reducer renders inline. */
export declare function createCompactionSummaryMessage(summary: string, tokensBefore: number, timestamp: string): CustomMessage<{
    tokensBefore: number;
}>;
export declare function createCancellationBoundaryMessage(timestamp: string): CustomMessage<{
    reason: 'user_cancelled';
}>;
/** Generic constructor for app-defined custom messages. */
export declare function createCustomMessage(customType: string, content: string | (TextContent | ImageContent)[], display: boolean, details: unknown | undefined, timestamp: string): CustomMessage;
//# sourceMappingURL=custom-messages.d.ts.map