import type { SortingState, OnChangeFn, VisibilityState, ColumnSizingState } from "@tanstack/react-table";
import { type FilterValue, type FilterSegmentOutput, type SystemFilterSegment, type CombinedFilterSegment, type SegmentIdentifier, type ActiveFilters, type UseSegments } from "./lib/types";
export type DataTableContextType = {
    tableIdentifier: string;
    ctaContainerRef: React.RefObject<HTMLDivElement>;
    filterToOpen: React.MutableRefObject<string | undefined>;
    activeFilters: ActiveFilters;
    clearAll: (exclude?: string[]) => void;
    addFilter: (columnId: string) => void;
    updateFilter: (columnId: string, value: FilterValue) => void;
    removeFilter: (columnId: string) => void;
    sorting: SortingState;
    setSorting: OnChangeFn<SortingState>;
    columnVisibility: VisibilityState;
    setColumnVisibility: OnChangeFn<VisibilityState>;
    columnSizing: ColumnSizingState;
    setColumnSizing: OnChangeFn<ColumnSizingState>;
    pageIndex: number;
    pageSize: number;
    setPageIndex: (pageIndex: number | null) => void;
    setPageSize: (pageSize: number | null) => void;
    offset: number;
    limit: number;
    segments: CombinedFilterSegment[];
    selectedSegment: CombinedFilterSegment | undefined;
    segmentId: SegmentIdentifier | null;
    setSegmentId: (id: SegmentIdentifier | null, providedSegment?: CombinedFilterSegment) => void;
    canSaveSegment: boolean;
    isSegmentEnabled: boolean;
    searchTerm: string;
    setSearchTerm: (searchTerm: string | null) => void;
    timeZone?: string;
};
export declare const DataTableContext: import("react").Context<DataTableContextType | null>;
interface DataTableProviderProps {
    tableIdentifier: string;
    children: React.ReactNode;
    useSegments?: UseSegments;
    ctaContainerClassName?: string;
    defaultPageSize?: number;
    segments?: FilterSegmentOutput[];
    timeZone?: string;
    preferredSegmentId?: SegmentIdentifier | null;
    systemSegments?: SystemFilterSegment[];
}
export declare function DataTableProvider({ tableIdentifier, children, useSegments, defaultPageSize, ctaContainerClassName, segments: providedSegments, timeZone, preferredSegmentId, systemSegments, }: DataTableProviderProps): JSX.Element;
export {};
//# sourceMappingURL=DataTableProvider.d.ts.map