import { GroupedItems, TreeItem, TreeGroup } from './Tree';
import { TreeSummaryCounts, AssetType } from './TreeSummary';
export type State = {
    groupedItems: GroupedItems;
    flatItems: TreeItem[];
    allChecked: boolean;
    searchValue: string;
    assetCounts: TreeSummaryCounts;
    typeFilter: string[];
    visibleTypeCounters: AssetType[];
    emptyGroups: TreeGroup[];
};
type Action = {
    type: 'assetCounted';
    payload: TreeSummaryCounts;
} | {
    type: 'allCheckedChanged';
    payload: boolean;
} | {
    type: 'searchValueChanged';
    payload: string;
} | {
    type: 'flatItemsChanged';
    payload: TreeItem[];
} | {
    type: 'groupedItemsChanged';
    payload: GroupedItems;
} | {
    type: 'typeFilterChanged';
    payload: string[];
} | {
    type: 'visibleTypeCountersChanged';
    payload: AssetType[];
} | {
    type: 'emptyGroupsChanged';
    payload: TreeGroup[];
};
export declare const assetCounted: (payload: TreeSummaryCounts) => Action;
export declare const allCheckedChanged: (payload: boolean) => Action;
export declare const searchValueChanged: (payload: string) => Action;
export declare const flatItemsChanged: (payload: TreeItem[]) => Action;
export declare const groupedItemsChanged: (payload: GroupedItems) => Action;
export declare const typeFilterChanged: (payload: string[]) => Action;
export declare const visibleTypeCountersChanged: (payload: AssetType[]) => Action;
export declare const emptyGroupsChanged: (payload: TreeGroup[]) => Action;
export declare const treeReducer: (state: State, action: Action) => State;
export {};
