import { PayloadAction } from "@reduxjs/toolkit";
import type { List } from "../../interfaces/models/List";
export interface ListsState {
    listsById: {
        [listId: string]: List;
    };
    sublistsMap: {
        [parentId: string]: string[];
    };
    currentListId: string | null;
    listHistory: string[];
    loading: boolean;
    currentProjectId?: string;
}
export declare const listsSlice: import("@reduxjs/toolkit").Slice<ListsState, {
    setProjectContext: (state: import("@reduxjs/toolkit").WritableDraft<ListsState>, action: PayloadAction<string>) => void;
    setLoading: (state: import("@reduxjs/toolkit").WritableDraft<ListsState>, action: PayloadAction<boolean>) => void;
    openList: (state: import("@reduxjs/toolkit").WritableDraft<ListsState>, action: PayloadAction<List>) => void;
    goBack: (state: import("@reduxjs/toolkit").WritableDraft<ListsState>) => void;
    goToRoot: (state: import("@reduxjs/toolkit").WritableDraft<ListsState>) => void;
    setCurrentList: (state: import("@reduxjs/toolkit").WritableDraft<ListsState>, action: PayloadAction<List | null>) => void;
    setSubLists: (state: import("@reduxjs/toolkit").WritableDraft<ListsState>, action: PayloadAction<{
        lists: List[];
        parentListId: string;
    }>) => void;
    updateCurrentList: (state: import("@reduxjs/toolkit").WritableDraft<ListsState>, action: PayloadAction<List>) => void;
    updateListInSubLists: (state: import("@reduxjs/toolkit").WritableDraft<ListsState>, action: PayloadAction<List>) => void;
    addNewListAndNavigate: (state: import("@reduxjs/toolkit").WritableDraft<ListsState>, action: PayloadAction<List>) => void;
    removeListFromSubLists: (state: import("@reduxjs/toolkit").WritableDraft<ListsState>, action: PayloadAction<string>) => void;
    handleListDeletion: (state: import("@reduxjs/toolkit").WritableDraft<ListsState>, action: PayloadAction<{
        listId: string;
        parentId?: string | null;
    }>) => void;
    resetLists: (state: import("@reduxjs/toolkit").WritableDraft<ListsState>) => void;
    handleError: (state: import("@reduxjs/toolkit").WritableDraft<ListsState>) => void;
}, "lists", "lists", import("@reduxjs/toolkit").SliceSelectors<ListsState>>;
export declare const setProjectContext: import("@reduxjs/toolkit").ActionCreatorWithPayload<string, "lists/setProjectContext">, setLoading: import("@reduxjs/toolkit").ActionCreatorWithPayload<boolean, "lists/setLoading">, openList: import("@reduxjs/toolkit").ActionCreatorWithPayload<List, "lists/openList">, goBack: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"lists/goBack">, goToRoot: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"lists/goToRoot">, setCurrentList: import("@reduxjs/toolkit").ActionCreatorWithPayload<List | null, "lists/setCurrentList">, setSubLists: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
    lists: List[];
    parentListId: string;
}, "lists/setSubLists">, updateCurrentList: import("@reduxjs/toolkit").ActionCreatorWithPayload<List, "lists/updateCurrentList">, updateListInSubLists: import("@reduxjs/toolkit").ActionCreatorWithPayload<List, "lists/updateListInSubLists">, addNewListAndNavigate: import("@reduxjs/toolkit").ActionCreatorWithPayload<List, "lists/addNewListAndNavigate">, removeListFromSubLists: import("@reduxjs/toolkit").ActionCreatorWithPayload<string, "lists/removeListFromSubLists">, handleListDeletion: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
    listId: string;
    parentId?: string | null;
}, "lists/handleListDeletion">, resetLists: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"lists/resetLists">, handleError: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"lists/handleError">;
declare const _default: import("@reduxjs/toolkit").Reducer<ListsState>;
export default _default;
export declare const selectCurrentList: (state: {
    lists: ListsState;
}) => List | null;
export declare const selectSubLists: ((state: {
    lists: ListsState;
} & {
    lists: ListsState;
} & {
    lists: ListsState;
}) => List[]) & {
    clearCache: () => void;
    resultsCount: () => number;
    resetResultsCount: () => void;
} & {
    resultFunc: (resultFuncArgs_0: string | null, resultFuncArgs_1: {
        [parentId: string]: string[];
    }, resultFuncArgs_2: {
        [listId: string]: List;
    }) => List[];
    memoizedResultFunc: ((resultFuncArgs_0: string | null, resultFuncArgs_1: {
        [parentId: string]: string[];
    }, resultFuncArgs_2: {
        [listId: string]: List;
    }) => List[]) & {
        clearCache: () => void;
        resultsCount: () => number;
        resetResultsCount: () => void;
    };
    lastResult: () => List[];
    dependencies: [(state: {
        lists: ListsState;
    }) => string | null, (state: {
        lists: ListsState;
    }) => {
        [parentId: string]: string[];
    }, (state: {
        lists: ListsState;
    }) => {
        [listId: string]: List;
    }];
    recomputations: () => number;
    resetRecomputations: () => void;
    dependencyRecomputations: () => number;
    resetDependencyRecomputations: () => void;
} & {
    memoize: typeof import("@reduxjs/toolkit").weakMapMemoize;
    argsMemoize: typeof import("@reduxjs/toolkit").weakMapMemoize;
};
export declare const selectListsLoading: (state: {
    lists: ListsState;
}) => boolean;
export declare const selectListHistory: ((state: {
    lists: ListsState;
} & {
    lists: ListsState;
}) => List[]) & {
    clearCache: () => void;
    resultsCount: () => number;
    resetResultsCount: () => void;
} & {
    resultFunc: (resultFuncArgs_0: string[], resultFuncArgs_1: {
        [listId: string]: List;
    }) => List[];
    memoizedResultFunc: ((resultFuncArgs_0: string[], resultFuncArgs_1: {
        [listId: string]: List;
    }) => List[]) & {
        clearCache: () => void;
        resultsCount: () => number;
        resetResultsCount: () => void;
    };
    lastResult: () => List[];
    dependencies: [(state: {
        lists: ListsState;
    }) => string[], (state: {
        lists: ListsState;
    }) => {
        [listId: string]: List;
    }];
    recomputations: () => number;
    resetRecomputations: () => void;
    dependencyRecomputations: () => number;
    resetDependencyRecomputations: () => void;
} & {
    memoize: typeof import("@reduxjs/toolkit").weakMapMemoize;
    argsMemoize: typeof import("@reduxjs/toolkit").weakMapMemoize;
};
export declare const selectSubListsMap: (state: {
    lists: ListsState;
}) => {
    [parentId: string]: string[];
};
export declare const selectListsById: (state: {
    lists: ListsState;
}) => {
    [listId: string]: List;
};
export declare const selectCurrentProjectId: (state: {
    lists: ListsState;
}) => string | undefined;
export declare const selectCurrentListId: (state: {
    lists: ListsState;
}) => string | null;
