/**
 * Provides base filtering operations
 * Implementations should be Singleton
 *
 * @export
 */
export declare class IgxFilteringOperand {
    operations: IFilteringOperation[];
    constructor();
    conditionList(): string[];
    condition(name: string): IFilteringOperation;
    append(operation: IFilteringOperation): void;
}
/**
 * Provides filtering operations for booleans
 *
 * @export
 */
export declare class IgxBooleanFilteringOperand extends IgxFilteringOperand {
    private static _instance;
    protected constructor();
    static instance(): IgxBooleanFilteringOperand;
}
/**
 * Provides filtering operations for Dates
 *
 * @export
 */
export declare class IgxDateFilteringOperand extends IgxFilteringOperand {
    private static _instance;
    protected constructor();
    static instance(): IgxDateFilteringOperand;
    /**
     * Splits a Date object into parts
     *
     * @memberof IgxDateFilteringOperand
     */
    static getDateParts(date: Date, dateFormat?: string): IDateParts;
    private validateInputData;
}
/**
 * Provides filtering operations for numbers
 *
 * @export
 */
export declare class IgxNumberFilteringOperand extends IgxFilteringOperand {
    private static _instance;
    protected constructor();
    static instance(): IgxNumberFilteringOperand;
}
/**
 * Provides filtering operations for strings
 *
 * @export
 */
export declare class IgxStringFilteringOperand extends IgxFilteringOperand {
    private static _instance;
    protected constructor();
    static instance(): IgxStringFilteringOperand;
    /**
     * Applies case sensitivity on strings if provided
     *
     * @memberof IgxStringFilteringOperand
     */
    static applyIgnoreCase(a: string, ignoreCase: boolean): string;
}
/**
 * Interface describing filtering operations
 *
 * @export
 */
export interface IFilteringOperation {
    name: string;
    isUnary: boolean;
    iconName: string;
    logic: (value: any, searchVal?: any, ignoreCase?: boolean) => boolean;
}
/**
 * Interface describing Date object in parts
 *
 * @export
 */
export interface IDateParts {
    year: number;
    month: number;
    day: number;
    hours: number;
    minutes: number;
    seconds: number;
    milliseconds: number;
}
