import { BlockRegistration, BlockTemplate, BlockTemplateView, CustomRegistration, IconPickerModel } from "../Exposes";
import { BlockGalleryHeader } from "./Header";
export interface BlockGalleryDialogLayoutSetting {
    headers: Array<BlockGalleryHeader>;
    orderedItems: Array<BlockGalleryItem>;
}
export interface BlockGalleryGeneralSetting {
    enabled?: boolean;
}
export declare const BlockGalleryAuthenticationLayoutSettingsKey = "$omnia_block_gallery_authentication_layout_settings$";
export declare const BlockGalleryDefaultLayoutSettingsKey = "$omnia_block_gallery_default_layout_settings$";
export declare const BlockGallerySpfxLayoutSettingsKey = "$omnia_block_gallery_spfx_layout_settings$";
export declare const BlockGalleryGeneralSettingsKey = "$omnia_block_gallery_general_settings$";
export declare const BlockDialogLayoutDefaultType = "default_eb457948-b71b-4deb-a6c3-b6f436349ba7";
export declare const BlockDialogLayoutSpfxType = "spfx_51a61d06-d0b7-4c89-ac3d-914c3a398714";
export declare const BlockDialogLayoutAuthenticationType = "authentication_4eda1b4d-60ab-45ac-8dec-ba812d9e688b";
export interface BlockGalleryItem {
    id: string;
    type: BlockGalleryItemType;
}
export interface BlockGalleryItemView extends BlockGalleryItem {
    title: string;
    icon?: string;
    iconPicker?: IconPickerModel;
    description?: string;
    item: CustomRegistration | BlockRegistration | BlockGalleryHeader | BlockTemplate | BlockTemplateView;
    spfxCompatibility?: boolean;
}
export declare enum BlockGalleryItemType {
    CustomRegistration = 1,
    BlockRegistration = 2,
    HeaderRegistration = 3,
    BlockTemplate = 4
}
export interface BlockDialogLayoutInfo {
    title: string;
    icon: string;
    layoutType: string;
}
export interface BlockDialogLayout extends BlockDialogLayoutInfo {
    settingsKey?: string;
    layoutProvider?: string;
    getBlockGalleryDialogLayoutSetting?: () => Promise<BlockGalleryDialogLayoutSetting>;
}
