import { Handler, ReactiveTreeNode } from "reactronic";
export type El<T = any, M = any> = {
    readonly node: ReactiveTreeNode<El<T, M>>;
    readonly rank: number;
    native: T;
    model: M;
    kind: ElKind;
    place: ElPlace;
    width: Range;
    height: Range;
    alignmentHorizontal: H | undefined;
    alignmentVertical: V | undefined;
    alignmentVerticalRowWise: V | undefined;
    selfAlignmentHorizontal: H | undefined;
    selfAlignmentVertical: V | undefined;
    selfAlignmentVerticalRowWise: V | undefined;
    selfStretchingStrengthHorizontal: number | undefined;
    selfStretchingStrengthVertical: number | undefined;
    contentWrapping: boolean;
    overlayVisible: boolean | undefined;
    text: string | undefined;
    textIsFormatted: boolean;
    textIsEditable: boolean;
    sealed: Direction | undefined;
    splitView: Direction | undefined;
    widthPx: {
        minPx: number;
        maxPx: number;
    };
    heightPx: {
        minPx: number;
        maxPx: number;
    };
    partitionSizeInSplitViewPx: number;
    readonly style: CSSStyleDeclaration;
    action: Handler<El<T, M>, void> | undefined;
    useStylingPreset(stylingPresetName: string, enabled?: boolean): void;
};
export declare enum ElKind {
    block = 0,
    table = 1,
    group = 2,
    partition = 3,
    splitter = 4,
    cursor = 5,
    native = 6
}
export type ElCoords = {
    x1: number;
    y1: number;
    x2: number;
    y2: number;
};
export declare enum H {
    center = 0,
    left = 1,
    right = 2,
    stretch = 3,
    stretchAndFix = 4
}
export declare enum V {
    center = 0,
    top = 1,
    bottom = 2,
    stretch = 3,
    stretchAndFix = 4
}
export type Range = {
    readonly min?: string;
    readonly max?: string;
    preferred?: string;
};
export type MarkedRange = Range & {
    readonly marker?: string;
};
export type ElPlace = undefined | string | {
    cellsOverWidth?: number;
    cellsOverHeight?: number;
};
export declare enum Direction {
    horizontal = 0,
    vertical = 1
}
