import { BlockNodeType, BlockNodeAddress, DeletableBlockNodeAddress } from './base.js';
export interface BlockListEntry {
    ordinal: number;
    nodeId: string;
    nodeType: BlockNodeType;
    textPreview: string | null;
    /** Full flattened block text when requested via BlocksListInput.includeText. */
    text?: string | null;
    isEmpty: boolean;
    /** Named paragraph style ID (e.g. 'Normal', 'Heading1'). */
    styleId?: string | null;
    /** Font family from the block's first text run. */
    fontFamily?: string;
    /** Font size from the block's first text run. */
    fontSize?: number;
    /** True if the block's text is bold. */
    bold?: boolean;
    /** True if the block's text is underlined. */
    underline?: boolean;
    /** Text color when explicitly set in the document. */
    color?: string;
    /** Paragraph alignment. */
    alignment?: string;
    /** Heading level (1-6). Only for headings. */
    headingLevel?: number;
    /** Ref handle targeting the block's full text. Pass to superdoc_format or superdoc_edit. */
    ref?: string;
}
export interface BlocksListInput {
    offset?: number;
    limit?: number;
    nodeTypes?: BlockNodeType[];
    /** Include full flattened text for each block. Omit to return textPreview only. */
    includeText?: boolean;
}
export interface BlocksListResult {
    total: number;
    blocks: BlockListEntry[];
    revision: string;
}
export interface BlocksDeleteInput {
    target: DeletableBlockNodeAddress;
}
export interface BlocksDeleteResult {
    success: true;
    deleted: DeletableBlockNodeAddress;
    deletedBlock?: DeletedBlockSummary;
}
export interface BlocksDeleteRangeInput {
    start: BlockNodeAddress;
    end: BlockNodeAddress;
}
export interface DeletedBlockSummary {
    ordinal: number;
    nodeId: string;
    nodeType: string;
    textPreview: string | null;
}
export interface BlocksDeleteRangeResult {
    success: true;
    deletedCount: number;
    deletedBlocks: DeletedBlockSummary[];
    revision: {
        before: string;
        after: string;
    };
    dryRun: boolean;
}
//# sourceMappingURL=blocks.types.d.ts.map