import { OPathsWithOptional, WhereClauseTuple } from '@magnetarjs/types';
export declare type DrawerFilterType<T extends Record<string, any>> = InputFilterType<T> | SelectFilterType<T> | CalendarFilterType<T> | CheckboxFilterType<T> | RadioFilterType<T>;
export declare type InputFilterType<T extends Record<string, any>> = {
    collection: string;
    /** collectionがdbModuleと異なるものには必須です */
    collectionPath?: OPathsWithOptional<T>;
    searchRelationField?: OPathsWithOptional<T>;
    path: OPathsWithOptional<T> | OPathsWithOptional<T>[];
    label: string;
    filterType: 'input';
    placeholder: string;
    search: WhereClauseTuple<T>[2];
    where: WhereClauseTuple<T>[1];
};
export declare type SelectFilterType<T extends Record<string, any>> = {
    collection: string;
    /** collectionがdbModuleと異なるものには必須です */
    collectionPath?: OPathsWithOptional<T>;
    searchRelationField?: OPathsWithOptional<T>;
    path: OPathsWithOptional<T>;
    label: string;
    filterType: 'select';
    placeholder: string;
    options: string[];
    search: WhereClauseTuple<T>[2];
    where: WhereClauseTuple<T>[1];
};
export declare type CalendarFilterType<T extends Record<string, any>> = {
    collection: string;
    /** collectionがdbModuleと異なるものには必須です */
    collectionPath?: OPathsWithOptional<T>;
    searchRelationField?: OPathsWithOptional<T>;
    path: OPathsWithOptional<T>;
    label: string;
    filterType: 'calendar';
    placeholder: string;
    search: {
        start: string;
        end: string;
    };
    where: {
        start: WhereClauseTuple<T>[1];
        end: WhereClauseTuple<T>[1];
    };
};
export declare type CheckboxFilterType<T extends Record<string, any>> = {
    collection: string;
    /** collectionがdbModuleと異なるものには必須です */
    collectionPath?: OPathsWithOptional<T>;
    searchRelationField?: OPathsWithOptional<T>;
    path: OPathsWithOptional<T>;
    label: string;
    filterType: 'checkboxes';
    options: string[];
    search: WhereClauseTuple<T>[2];
    where: WhereClauseTuple<T>[1];
};
export declare type RadioFilterType<T extends Record<string, any>> = {
    collection: string;
    /** collectionがdbModuleと異なるものには必須です */
    collectionPath?: OPathsWithOptional<T>;
    searchRelationField?: OPathsWithOptional<T>;
    path: OPathsWithOptional<T>;
    label: string;
    filterType: 'radio';
    options: string[];
    search: WhereClauseTuple<T>[2];
    where: WhereClauseTuple<T>[1];
};
//# sourceMappingURL=index.d.ts.map