import { Step, StructAssert, TestStore } from '@ephox/agar';
import { AlloyComponent } from 'ephox/alloy/api/component/ComponentApi';
import { SketchSpec } from 'ephox/alloy/api/component/SpecTypes';
import { TogglingConfigSpec } from 'ephox/alloy/behaviour/toggling/TogglingTypes';
import { ItemSpec } from 'ephox/alloy/ui/types/ItemTypes';
import { PartialMenuSpec, TieredData, TieredMenuSpec } from 'ephox/alloy/ui/types/TieredMenuTypes';
interface MenuState {
    readonly menuUid: string;
}
interface ItemData {
    value: string;
    meta: any;
}
interface WidgetItem {
    type: 'widget';
    widget: SketchSpec;
    data: ItemData;
}
interface NormalItem {
    type: 'item';
    data: ItemData;
    hasSubmenu?: boolean;
    toggling?: Partial<TogglingConfigSpec> & {
        exclusive?: boolean;
    };
}
interface SeparatorItem {
    type: 'separator';
    text: string;
}
export declare type TestItem = WidgetItem | NormalItem | SeparatorItem;
declare const renderMenu: (spec: {
    value: string;
    text?: string;
    items: ItemSpec[];
}) => PartialMenuSpec;
declare const renderItem: (spec: TestItem) => ItemSpec;
declare const part: (store: TestStore) => Partial<TieredMenuSpec>;
declare const mStoreMenuUid: <T>(component: AlloyComponent) => Step<T, T & MenuState>;
declare const mWaitForNewMenu: (component: AlloyComponent) => Step<MenuState, unknown>;
declare const assertLazySinkArgs: (expectedTag: string, expectedClass: string, comp: AlloyComponent) => void;
declare const getSampleTieredData: () => TieredData;
declare const structNotActiveItem: StructAssert;
declare const structActiveItem: StructAssert;
declare const itemsHaveActiveStates: (states: boolean[]) => StructAssert[];
declare const markers: () => {
    item: string;
    menu: string;
    backgroundMenu: string;
    selectedMenu: string;
    selectedItem: string;
};
export { assertLazySinkArgs, renderItem, renderMenu, part, markers, mWaitForNewMenu, mStoreMenuUid, getSampleTieredData, structNotActiveItem, structActiveItem, itemsHaveActiveStates };
//# sourceMappingURL=TestDropdownMenu.d.ts.map