import { CollectionOptimisticActions, CollectionState, FiltersMap, TaskState, WixPatternsContainer, WixPatternsContainerParams } from '@wix/bex-core';
import { EditableTableState, EditableTablePermissions, EditableTableMutationHandlers } from './EditableTable';
import { GridState } from './GridState';
import { ICollectionComponentState } from './ICollectionComponentState';
import { ILayoutSwitchState } from './ILayoutSwitchState';
import { TableState } from './TableState';
import { ToolbarCollectionState } from './ToolbarCollectionState';
import { ViewType, ViewTypeState } from './ViewTypeState';
import type { FieldActions } from '../types/SchemaConfig';
export interface TableLayoutConfig {
}
export interface GridLayoutConfig {
}
export interface SpreadsheetLayoutConfig<T, F extends FiltersMap> {
    mutations: EditableTableMutationHandlers<T>;
    permissions?: EditableTablePermissions;
    fieldActions?: FieldActions;
    refresh?: () => Promise<void>;
    createOptimisticActions: (collection: CollectionState<T, F>) => CollectionOptimisticActions<T, F>;
}
export interface LayoutSwitchStateParams<T, F extends FiltersMap> {
    collection: CollectionState<T, F>;
    container: WixPatternsContainer;
    containerOverrides: Partial<WixPatternsContainerParams>;
    table?: TableLayoutConfig;
    grid?: GridLayoutConfig;
    spreadsheet?: SpreadsheetLayoutConfig<T, F>;
}
export declare class LayoutSwitchState<T, F extends FiltersMap> implements ICollectionComponentState, ILayoutSwitchState<T, F> {
    readonly collection: CollectionState<T, F>;
    readonly toolbar: ToolbarCollectionState<T, F>;
    readonly containerOverrides: Partial<WixPatternsContainerParams>;
    readonly tableState: TableState<T, F> | undefined;
    readonly gridState: GridState<T, F> | undefined;
    readonly spreadsheetState: EditableTableState<T, F> | undefined;
    readonly viewTypeState: ViewTypeState;
    readonly initTask: TaskState<unknown>;
    get viewType(): ViewType;
    set viewType(v: ViewType);
    get options(): ViewType[];
    constructor(params: LayoutSwitchStateParams<T, F>);
    init(): void;
}
//# sourceMappingURL=LayoutSwitchState.d.ts.map