import React from 'react';
import PropTypes from 'prop-types';
export declare const ASC = "ASC";
export declare const DESC = "DESC";
export declare const KEY_ENTER = 13;
export declare const KEY_SPACE = 32;
export declare type CommonListSorterProps = {
    tagName: string;
    className: string;
    children?: React.ReactNode;
    append?: React.ReactNode;
    prepend?: React.ReactNode;
    property?: string;
    displayName?: string;
    ascendingText?: string;
    descendingText?: string;
    sorterTitleText?: string;
    testAutomationId: string;
    onChangeSorting?: any;
    direction?: any;
} & Partial<CommonListSorterDefaultProps>;
export declare type CommonListSorterDefaultProps = {
    tagName: 'th';
    className: '';
    append: null;
    prepend: null;
    property: string;
    displayName: string;
    ascendingText: string;
    descendingText: string;
    sorterTitleText: string;
    testAutomationId: null;
};
export declare class CommonListSorter<P extends CommonListSorterProps> extends React.Component<P> {
    static propTypes: {
        tagName: PropTypes.Requireable<string>;
        className: PropTypes.Requireable<string>;
        onChangeSorting: PropTypes.Validator<(...args: any[]) => any>;
        direction: PropTypes.Validator<string>;
        children: PropTypes.Requireable<PropTypes.ReactNodeLike>;
        append: PropTypes.Requireable<PropTypes.ReactNodeLike>;
        prepend: PropTypes.Requireable<PropTypes.ReactNodeLike>;
        property: PropTypes.Requireable<string>;
        displayName: PropTypes.Requireable<string>;
        ascendingText: PropTypes.Requireable<string>;
        descendingText: PropTypes.Requireable<string>;
        sorterTitleText: PropTypes.Requireable<string>;
        testAutomationId: PropTypes.Requireable<string>;
    };
    static defaultProps: {
        tagName: string;
        className: string;
        children: any;
        append: any;
        prepend: any;
        property: string;
        displayName: string;
        readonly ascendingText: string;
        readonly descendingText: string;
        readonly sorterTitleText: string;
        testAutomationId: any;
    };
    handleClick: () => void;
    sorterClassName(): string;
    handleKeyDown: (e: any) => void;
    getAccessibilityHeaderProps(): {
        role: string;
        onKeyDown: (e: any) => void;
        tabIndex: number;
        title: P["sorterTitleText"];
    };
    getAriaSortName(): string;
    renderSorterIcon(): JSX.Element;
    renderPrepend(prepend: any): JSX.Element;
    renderAppend(append: any): JSX.Element;
    renderCellContent(): JSX.Element;
    render(): JSX.Element;
}
