import { FiltersMap, WixPatternsContainer, DataResultRaw, CollectionState, CollectionStateParams, stringFilter, QueryState } from '@wix/bex-core';
export interface KanbanStageStateBaseParams<T> {
    readonly container: WixPatternsContainer;
    readonly initialPage?: DataResultRaw<T>;
    readonly name: string;
    readonly key: string;
    readonly kanbanId: string;
}
export interface KanbanStageStateParams<T, S, F extends FiltersMap & {
    stageId: ReturnType<typeof stringFilter>;
}> extends KanbanStageStateBaseParams<T> {
    readonly fetchData: CollectionStateParams<T, F>['fetchData'];
    readonly itemKey: CollectionStateParams<T, F>['itemKey'];
    readonly itemName: CollectionStateParams<T, F>['itemName'];
    readonly stage: S;
    readonly query: QueryState<F>;
}
export declare class KanbanStageState<T, S, F extends FiltersMap & {
    stageId: ReturnType<typeof stringFilter>;
}> {
    readonly container: WixPatternsContainer;
    readonly itemsCollectionState: CollectionState<T, F>;
    name: string;
    readonly key: string;
    readonly kanbanId: string;
    readonly stage: S;
    _total?: number;
    isRefetching: boolean;
    private optimisticActions;
    constructor(params: KanbanStageStateParams<T, S, F>);
    init(): () => void;
    get hasError(): boolean;
    items(): any[];
    itemName(item: T): string;
    itemKey(item: T): string;
    get totalItems(): number | undefined;
    setTotal(total: number): void;
    get stageName(): string;
    get stageKey(): string;
    get isLoading(): boolean;
    fetchMore(): void;
    isFetchingMore(): boolean;
    deleteItem(item: T): void;
    createItem(item: T): void;
    showErrorToast(error: unknown): void;
    updateItem(updatedItem: T): void;
    refetchStage(): Promise<void>;
}
//# sourceMappingURL=KanbanStageState.d.ts.map