export interface SlackCanvasDocumentContent { type: "markdown"; markdown: string; } export type SlackCanvasCreateMethod = "canvases.create" | "conversations.canvases.create"; export type SlackCanvasCreateKind = "standalone" | "channel"; export type SlackCanvasUpdateMode = "append" | "prepend" | "replace"; export type SlackCanvasSectionType = "h1" | "h2" | "h3" | "any_header"; export type SlackCanvasEditOperation = "insert_at_end" | "insert_at_start" | "replace"; export interface SlackCanvasCommentRecord { id?: string; userId?: string; createdTs?: string; text: string; } export interface SlackCanvasCommentsPage { canvasId: string; title?: string; permalink?: string; commentsCount: number; returnedCount: number; page?: number; pages?: number; comments: SlackCanvasCommentRecord[]; nextCursor?: string; } export interface SlackCanvasCreateInput { kind?: string; title?: string; markdown?: string; channelId?: string; } export interface SlackCanvasCreateRequest { kind: SlackCanvasCreateKind; method: SlackCanvasCreateMethod; body: { title?: string; channel_id?: string; document_content?: SlackCanvasDocumentContent; }; } export interface SlackCanvasEditRequest { canvas_id: string; changes: [ { operation: SlackCanvasEditOperation; document_content: SlackCanvasDocumentContent; section_id?: string; } ]; } export interface SlackCanvasSectionLookupRequest { canvas_id: string; criteria: { contains_text: string; section_types?: SlackCanvasSectionType[]; }; } export interface SlackCanvasSectionLookupResult { id?: string; } export declare function normalizeSlackCanvasCreateKind(kind?: string): SlackCanvasCreateKind; export declare function normalizeSlackCanvasUpdateMode(mode?: string): SlackCanvasUpdateMode; export declare function normalizeSlackCanvasSectionType(type?: string): SlackCanvasSectionType | undefined; export declare function normalizeSlackCanvasCommentsLimit(limit?: number): number; export declare function buildSlackCanvasCreateRequest(input: SlackCanvasCreateInput): SlackCanvasCreateRequest; export declare function buildSlackCanvasEditRequest(input: { canvasId: string; markdown: string; mode?: string; sectionId?: string; }): SlackCanvasEditRequest; export declare function buildSlackCanvasSectionsLookupRequest(input: { canvasId: string; containsText: string; sectionType?: string; }): SlackCanvasSectionLookupRequest; export declare function pickSlackCanvasSectionId(sections: SlackCanvasSectionLookupResult[] | undefined, sectionIndex?: number): string; export declare function extractSlackChannelCanvasId(response: Record): string | null; export declare function extractSlackCanvasCommentsPage(response: Record, fallbackCanvasId?: string): SlackCanvasCommentsPage;