import { Optional } from '@ephox/katamari';
import { AlloyComponent } from '../../api/component/ComponentApi';
import { MenuPreparation } from '../../ui/single/TieredMenuSpec';
export type MenuDirectory = Record<string, string[]>;
export interface LayeredItemTrigger {
    readonly triggeringItem: AlloyComponent;
    readonly triggeredMenu: AlloyComponent;
    readonly triggeringPath: string[];
}
export interface LayeredState {
    setContents: (sPrimary: string, sMenus: Record<string, MenuPreparation>, sExpansions: Record<string, string>, dir: MenuDirectory) => void;
    setMenuBuilt: (menuName: string, built: AlloyComponent) => void;
    expand: (itemValue: string) => Optional<string[]>;
    refresh: (itemValue: string) => Optional<string[]>;
    collapse: (itemValue: string) => Optional<string[]>;
    lookupMenu: (menuValue: string) => Optional<MenuPreparation>;
    lookupItem: (itemValue: string) => Optional<string>;
    otherMenus: (path: string[]) => string[];
    getPrimary: () => Optional<AlloyComponent>;
    getMenus: () => Record<string, MenuPreparation>;
    clear: () => void;
    isClear: () => boolean;
    getTriggeringPath: (itemValue: string, getItemByValue: (itemValue: string) => Optional<AlloyComponent>) => Optional<LayeredItemTrigger[]>;
}
export declare const LayeredState: {
    init: () => LayeredState;
    extractPreparedMenu: (prep: MenuPreparation) => Optional<AlloyComponent>;
};
//# sourceMappingURL=LayeredState.d.ts.map