import { ODataConfig } from "../../../fd-toolbox/odata/odataconfig";
import { ResourceListConfig } from "../edit-resource/config/resource-list-config";
import { ResourceListComponentState } from "./resource-list-persist-state";
import { TableSort, Paging } from "../table/table-models";
import { ResourceFilterListComponent } from "../filtering/resource-filter-list/ResourceFilterList";
import { ResourceMeta } from "../core/resource-meta";
import { UiResourceMeta } from "../ui-resource-meta";
import { BaseODataFilter } from "../../../fd-toolbox/odata/filters/base-odata-filter";
import { WithIndexer } from "../../../fd-toolbox-core/types/with-indexer";
import { WithId } from "../../../fd-toolbox-core/types/resource-with-id";
import { ResourceListState } from "./resource-list-state";
export declare function useResourceListState(tableRequired: boolean, resourceListConfigProp?: ResourceListConfig, resourceNameProp?: string, uiResourceMetaProp?: UiResourceMeta): {
    state: {
        resourceListConfig: ResourceListConfig;
        setResourceListConfig: import("react").Dispatch<import("react").SetStateAction<ResourceListConfig>>;
        componentState: ResourceListComponentState;
        setComponentState: import("react").Dispatch<import("react").SetStateAction<ResourceListComponentState>>;
        resourcesState: WithId[];
        setResourcesState: import("react").Dispatch<import("react").SetStateAction<WithId[]>>;
        resourceMeta: ResourceMeta;
        setResourceMeta: import("react").Dispatch<import("react").SetStateAction<ResourceMeta>>;
        resourceName: string;
        setResourceName: import("react").Dispatch<import("react").SetStateAction<string>>;
        uiResourceMeta: UiResourceMeta;
        setUiResourceMeta: import("react").Dispatch<import("react").SetStateAction<UiResourceMeta>>;
        readonly: boolean;
        setReadonly: import("react").Dispatch<import("react").SetStateAction<boolean>>;
        hasNeededAccess: boolean;
        setHasNeededAccess: import("react").Dispatch<import("react").SetStateAction<boolean>>;
        oDataConfig: ODataConfig;
        setODataConfig: import("react").Dispatch<import("react").SetStateAction<ODataConfig>>;
        queryODataFilters: BaseODataFilter<unknown>[];
        setQueryODataFilters: import("react").Dispatch<import("react").SetStateAction<BaseODataFilter<unknown>[]>>;
        viewMode: number;
        setViewMode: import("react").Dispatch<import("react").SetStateAction<number>>;
        loading: boolean;
        setLoading: import("react").Dispatch<import("react").SetStateAction<boolean>>;
        resourceFilterListComponentRef: import("react").RefObject<ResourceFilterListComponent>;
        shouldDisplayTable: boolean;
    };
};
export declare function useResourceListEffects(state: ResourceListState, searchParams: WithIndexer<string>, localSortingPagingFiltering?: boolean, showFilters?: boolean, resourceListConfigProp?: ResourceListConfig, resourceNameProp?: string, resourcesProp?: WithId[], uiResourceMetaProp?: UiResourceMeta): void;
export declare function useResourceListFilterCallbacks(state: ResourceListState, resources?: WithId[], resourceNameProp?: string, localSortingPagingFiltering?: boolean): {
    onFilterChangeCallback: () => Promise<void>;
    onSortCallback: (tableSort: TableSort) => Promise<void>;
    isCreateOnlyResourceState: boolean;
};
export declare function useRefreshResources(state: ResourceListState, resources?: WithId[], localSortingPagingFiltering?: boolean): {
    refreshResources: () => void;
};
export declare function useResourcePaginationAndNavigation(state: ResourceListState, resources?: WithId[], localSortingPagingFiltering?: boolean): {
    onPagingCallback: (fdTablePaging: Paging) => Promise<void>;
    onNavigateToResource: () => void;
};
