import { DynamicSortProps, InitialSortApplied, RawSortFieldApply } from '../../components/DynamicSort/types';
import { DynamicFilterProps, InitialFilterApplied, RawFilterFieldApply } from '../../components/DynamicFilter/types';
import { DynamicFilterAndSortSlots } from './slots/DynamicFilterAndSortEnum';
import { M4LDYNAMIC_KEY_FILTER_AND_SORT } from './constants';
import { Theme } from '@mui/material/styles';
import { WindowToolsMF } from '../../components/WindowBase';
import { M4LOverridesStyleRules } from '../../@types/augmentations';
interface ChangeFilter {
    filters?: Array<InitialFilterApplied>;
    rawFilters?: Array<RawFilterFieldApply>;
}
interface ChangeSort {
    sorts?: Array<InitialSortApplied>;
    rawSorts?: Array<RawSortFieldApply>;
}
export interface ChangeFilterSort {
    eventFilters?: ChangeFilter;
    eventSorts?: ChangeSort;
}
export interface UseDynamicFilterAndSortProps extends Pick<DynamicFilterProps, 'fields' | 'withAllField' | 'visibleRefresh'> {
    setCookie?: WindowToolsMF['setCookie'];
    getCookie?: WindowToolsMF['getCookie'];
    prefixCookie?: string;
    initialFilterToggleed?: boolean;
    initialSortToggleed?: boolean;
    rightActions?: React.ReactNode;
    onChangeFilterSort: (params: ChangeFilterSort) => void;
    dataTestId?: string;
    sorts?: DynamicSortProps['fields'];
    filterSortAutomatic?: boolean;
    withExternalRefresh?: boolean;
    visibleFilterButton?: boolean;
    visibleSortButton?: boolean;
}
export interface DynamicFilterAndSortOwnerState {
    showDynamicFilter: boolean;
    showDynamicSort: boolean;
    automatic: boolean;
    isDirty: boolean;
}
export type DynamicFilterAndSortSlotsType = keyof typeof DynamicFilterAndSortSlots;
export type DynamicFilterAndSortStyles = M4LOverridesStyleRules<DynamicFilterAndSortSlotsType, typeof M4LDYNAMIC_KEY_FILTER_AND_SORT, Theme>;
export {};
//# sourceMappingURL=types.d.ts.map