import WidgetBase from '@dojo/framework/core/WidgetBase';
import ThemedMixin from '@dojo/framework/core/mixins/Themed';
import { ColumnConfig, SortOptions } from './interfaces';
import { DNode } from '@dojo/framework/core/interfaces';
export interface SortRenderer {
    (column: ColumnConfig, direction: undefined | 'asc' | 'desc', sorter: () => void): DNode;
}
export interface FilterRenderer {
    (column: ColumnConfig, filterValue: string, doFilter: (value: string) => void, title?: string | DNode): DNode;
}
export interface HeaderProperties {
    columnConfig: ColumnConfig[];
    sorter: (columnId: string, direction: 'asc' | 'desc') => void;
    filterer: (columnId: string, value: any) => void;
    filter?: {
        [index: string]: string;
    };
    sort?: SortOptions;
    sortRenderer?: SortRenderer;
    filterRenderer?: FilterRenderer;
}
declare const Header_base: import("@dojo/framework/core/interfaces").Constructor<ThemedMixin<{}>> & typeof WidgetBase;
export default class Header extends Header_base<HeaderProperties> {
    private _getColumnTitle;
    private _sortColumn;
    private _sortRenderer;
    private _filterRenderer;
    protected render(): DNode;
}
export {};
