export declare const NeoCollapseGroupStrategy: {
    readonly Readonly: "readonly";
    readonly Oldest: "oldest";
};
export type NeoCollapseGroupStrategies = (typeof NeoCollapseGroupStrategy)[keyof typeof NeoCollapseGroupStrategy];
export declare const defaultCollapseGroupStrategy: {
    min: NeoCollapseGroupStrategies;
    max: NeoCollapseGroupStrategies;
};
export interface NeoCollapseGroupState {
    readonly id: string;
    readonly min: number;
    readonly max: number;
    readonly disabled?: boolean;
    readonly readonly?: boolean;
    readonly strategy?: NeoCollapseGroupStrategies | {
        min?: NeoCollapseGroupStrategies;
        max?: NeoCollapseGroupStrategies;
    };
}
export interface NeoCollapseSection {
    readonly id: string;
    readonly editable?: boolean;
    open: boolean;
    changed: number;
}
export declare class NeoCollapseContext {
    #private;
    get disabled(): boolean | undefined;
    get readonly(): boolean | undefined;
    get min(): number;
    get max(): number;
    get opened(): number;
    get closed(): number;
    get strategy(): {
        min?: NeoCollapseGroupStrategies;
        max?: NeoCollapseGroupStrategies;
    };
    get canOpen(): boolean;
    get canClose(): boolean;
    constructor(group: NeoCollapseGroupState);
    register(id: NeoCollapseSection['id'], section: NeoCollapseSection): any;
    remove(sectionId: string): void;
    update(sectionId: NeoCollapseSection['id']): any;
}
export declare function getNeoCollapseGroupContext(): NeoCollapseContext;
export declare function setCollapseGroupContext(group: NeoCollapseGroupState): NeoCollapseContext;
