import { BlockNodeAddress } from '../types/base.js';
import { ReceiptFailure } from '../types/receipt.js';
export type ParagraphBlockType = 'paragraph' | 'heading' | 'listItem';
export type ParagraphTarget = BlockNodeAddress & {
    nodeType: ParagraphBlockType;
};
export interface MutationResolution {
    target: ParagraphTarget;
}
export interface ParagraphMutationSuccess {
    success: true;
    target: ParagraphTarget;
    resolution: MutationResolution;
}
export interface ParagraphMutationFailure {
    success: false;
    failure: ReceiptFailure;
    resolution?: MutationResolution;
}
export type ParagraphMutationResult = ParagraphMutationSuccess | ParagraphMutationFailure;
export declare const PARAGRAPH_ALIGNMENTS: readonly ["left", "center", "right", "justify"];
export type ParagraphAlignment = (typeof PARAGRAPH_ALIGNMENTS)[number];
export declare const TAB_STOP_ALIGNMENTS: readonly ["left", "center", "right", "decimal", "bar"];
export type TabStopAlignment = (typeof TAB_STOP_ALIGNMENTS)[number];
export declare const TAB_STOP_LEADERS: readonly ["none", "dot", "hyphen", "underscore", "heavy", "middleDot"];
export type TabStopLeader = (typeof TAB_STOP_LEADERS)[number];
export declare const BORDER_SIDES: readonly ["top", "bottom", "left", "right", "between", "bar"];
export type BorderSide = (typeof BORDER_SIDES)[number];
export declare const CLEAR_BORDER_SIDES: readonly ["top", "bottom", "left", "right", "between", "bar", "all"];
export type ClearBorderSide = (typeof CLEAR_BORDER_SIDES)[number];
export declare const LINE_RULES: readonly ["auto", "exact", "atLeast"];
export type LineRule = (typeof LINE_RULES)[number];
/** paragraphs.setStyle */
export interface ParagraphsSetStyleInput {
    target: ParagraphTarget;
    styleId: string;
}
/** paragraphs.clearStyle */
export interface ParagraphsClearStyleInput {
    target: ParagraphTarget;
}
/** paragraphs.resetDirectFormatting */
export interface ParagraphsResetDirectFormattingInput {
    target: ParagraphTarget;
}
/** paragraphs.setAlignment */
export interface ParagraphsSetAlignmentInput {
    target: ParagraphTarget;
    alignment: ParagraphAlignment;
}
/** paragraphs.clearAlignment */
export interface ParagraphsClearAlignmentInput {
    target: ParagraphTarget;
}
/** paragraphs.setIndentation */
export interface ParagraphsSetIndentationInput {
    target: ParagraphTarget;
    left?: number;
    right?: number;
    firstLine?: number;
    hanging?: number;
}
/** paragraphs.clearIndentation */
export interface ParagraphsClearIndentationInput {
    target: ParagraphTarget;
}
/** paragraphs.setSpacing */
export interface ParagraphsSetSpacingInput {
    target: ParagraphTarget;
    before?: number;
    after?: number;
    line?: number;
    lineRule?: LineRule;
}
/** paragraphs.clearSpacing */
export interface ParagraphsClearSpacingInput {
    target: ParagraphTarget;
}
/** paragraphs.setKeepOptions */
export interface ParagraphsSetKeepOptionsInput {
    target: ParagraphTarget;
    keepNext?: boolean;
    keepLines?: boolean;
    widowControl?: boolean;
}
/** paragraphs.setOutlineLevel */
export interface ParagraphsSetOutlineLevelInput {
    target: ParagraphTarget;
    outlineLevel: number | null;
}
/** paragraphs.setFlowOptions */
export interface ParagraphsSetFlowOptionsInput {
    target: ParagraphTarget;
    contextualSpacing?: boolean;
    pageBreakBefore?: boolean;
    suppressAutoHyphens?: boolean;
}
/** paragraphs.setTabStop */
export interface ParagraphsSetTabStopInput {
    target: ParagraphTarget;
    position: number;
    alignment: TabStopAlignment;
    leader?: TabStopLeader;
}
/** paragraphs.clearTabStop */
export interface ParagraphsClearTabStopInput {
    target: ParagraphTarget;
    position: number;
}
/** paragraphs.clearAllTabStops */
export interface ParagraphsClearAllTabStopsInput {
    target: ParagraphTarget;
}
/** paragraphs.setBorder */
export interface ParagraphsSetBorderInput {
    target: ParagraphTarget;
    side: BorderSide;
    style: string;
    color?: string;
    size?: number;
    space?: number;
}
/** paragraphs.clearBorder */
export interface ParagraphsClearBorderInput {
    target: ParagraphTarget;
    side: ClearBorderSide;
}
/** paragraphs.setShading */
export interface ParagraphsSetShadingInput {
    target: ParagraphTarget;
    fill?: string;
    color?: string;
    pattern?: string;
}
/** paragraphs.clearShading */
export interface ParagraphsClearShadingInput {
    target: ParagraphTarget;
}
export declare const PARAGRAPH_DIRECTIONS: readonly ["ltr", "rtl"];
export type ParagraphDirection = (typeof PARAGRAPH_DIRECTIONS)[number];
export declare const ALIGNMENT_POLICIES: readonly ["preserve", "matchDirection"];
export type AlignmentPolicy = (typeof ALIGNMENT_POLICIES)[number];
/** paragraphs.setDirection */
export interface ParagraphsSetDirectionInput {
    target: ParagraphTarget;
    direction: ParagraphDirection;
    alignmentPolicy?: AlignmentPolicy;
}
/** paragraphs.clearDirection */
export interface ParagraphsClearDirectionInput {
    target: ParagraphTarget;
}
//# sourceMappingURL=paragraphs.types.d.ts.map