import { PaginationInterface } from './index';
export declare const FilterOperator: {
    readonly EQ: "eq";
    readonly NEQ: "neq";
    readonly CONTAINS: "ct";
    readonly NOT_CONTAINS: "nct";
    readonly STARTSWITH: "sw";
    readonly ENDSWITH: "ew";
    readonly NOT_STARTSWITH: "nsw";
    readonly NOT_ENDSWITH: "new";
    readonly BETWEEN: "bt";
    readonly LT: "lt";
    readonly LTE: "lte";
    readonly GT: "gt";
    readonly GTE: "gte";
    readonly IN: "in";
    readonly NOT_IN: "nin";
    readonly LIKE: "like";
};
export type FilterOperator = (typeof FilterOperator)[keyof typeof FilterOperator];
export type FilterValue = {
    [operator in FilterOperator]?: string | number | boolean | Array<string>;
};
export declare const SortDirection: {
    readonly ASC: "asc";
    readonly DESC: "desc";
};
export type SortDirection = (typeof SortDirection)[keyof typeof SortDirection];
export type SortOrder<T> = {
    [field in keyof T]?: (typeof SortDirection)[keyof typeof SortDirection];
};
export interface GenericFilterDto<T> extends PaginationInterface {
    filter?: {
        [field in keyof T]?: FilterValue;
    };
    sort?: SortOrder<T>;
}
