import { GC } from '../../../../@ones-table/core';
import { OnesTable } from '../../../../@ones-table/common';
import Tabs from '../components/tabs';
import PopupDialog from '../dialog/popup-dialog';
import ContentFilter from './content-filter';
import ConditionFilter from './condition-filter';
import ColorFilter from './color-filter';
import { RowFilterDialog } from './types';
import './filter-dialog.scss';
export declare class FilterDialog implements RowFilterDialog {
    private table;
    dialog: PopupDialog;
    components: {
        root: HTMLElement;
        tabs: Tabs;
        filterContent: HTMLElement;
        okButton: HTMLButtonElement;
        cancelButton: HTMLButtonElement;
        clearButton: HTMLButtonElement;
        sortAscButton: HTMLButtonElement;
        sortDescButton: HTMLButtonElement;
    };
    contentFilter: ContentFilter;
    colorFilter: ColorFilter;
    conditionFilter: ConditionFilter;
    sheet: GC.Spread.Sheets.Worksheet | null;
    range: GC.Spread.Sheets.Range | null;
    constructor(table: OnesTable);
    destroy(): void;
    enableOkButton(enable: boolean): void;
    show(filterButton: HTMLElement, sheet: GC.Spread.Sheets.Worksheet, col: number): void;
    handleTabChange: () => void;
    updateContent(): void;
    updateContentByContent(parent: HTMLElement): void;
    updateContentByColor(parent: HTMLElement): void;
    updateContentByCondition(parent: HTMLElement): void;
    handleOk: () => void;
    handleCancel: () => void;
    handleClear: () => void;
    handleSortAsc: () => void;
    handleSortDesc: () => void;
    sortColumn(asc: boolean): void;
    static createContent(): {
        root: HTMLDivElement;
        tabs: Tabs;
        filterContent: HTMLDivElement;
        clearButton: HTMLButtonElement;
        cancelButton: HTMLButtonElement;
        okButton: HTMLButtonElement;
        sortAscButton: HTMLButtonElement;
        sortDescButton: HTMLButtonElement;
    };
}
