export type DatatableFilterCondition = '>' | '>=' | '<' | '<=' | '=' | '!=' | '~' | '><' | '[]' | '*';
export type DatatableFilterType = 'number' | 'text' | 'date' | 'array';
export declare class XDatatableFilter {
    /**
     * Filter active
     */
    active: boolean;
    /**
     * Filter is ready and valid
     */
    valid: boolean;
    /**
     * Filter label
     */
    label: string;
    /**
     * Filter type
     */
    type: DatatableFilterType;
    /**
     * Filter condition type
     */
    condition: DatatableFilterCondition;
    /**
     * Filter value
     */
    value: string;
    /**
     * Field to filter in database
     */
    field: string;
    /**
     * Filter options
     */
    options: Array<HTMLXDatatableFilterItemElement>;
    /**
     * Component element
     */
    el: HTMLElement;
    /**
     * Element event on slot make changes
     */
    handleSlotChange(): void;
    /**
     * Element event on child items changed
     */
    handleChildsChange(): void;
    /**
     * Element event on slot make changes
     */
    handleClearEvent(): void;
    /**
     * Update the child filters and render the result
     */
    computeChildFiltersItems(): void;
    /**
     * On element will mounted
     */
    componentWillLoad(): void;
    /**
     * Filter has options
     */
    hasOptions(): boolean;
    /**
     * The condition is ranged
     */
    isRanged(): boolean;
    /**
     * Get the first value of ranged data
     */
    getFirstRangedValue(): string;
    /**
     * Get the last value of ranged data
     */
    getLastRangedValue(): string;
    /**
     * Verify is condition and value is valid
     */
    checkIsValid(): void;
    /**
     * On operator selection change
     */
    onOperatorChange(e: Event): void;
    /**
     * On input value change
     */
    onValueInput(e: Event): void;
    /**
     * Render element
     */
    render(): any;
}
