import * as React from 'react';
import { IStartEnd, IStartDuration, IEndDuration, TimeUnit } from './TimeWindowUtils';
import { DateUnit } from './QuickSelects';
import { Gemstone } from '@gpa-gemstone/application-typings';
export interface ITimeWindow {
    start: string;
    end: string;
    unit: TimeUnit;
    duration: number;
}
export type ITimeFilter = IStartEnd | IStartDuration | IEndDuration;
export type DateTimeSetting = 'startWindow' | 'endWindow' | 'startEnd';
interface IProps {
    /**
     * Filter to be used in form
     */
    filter: ITimeFilter;
    /**
     * Setter function to update filter
     * @param start - Start Time
     * @param end - End Time
     * @param unit - Time Unit
     * @param duration - Duration
     * @returns
     */
    setFilter: (start: string, end: string, unit: TimeUnit, duration: number) => void;
    /**
     * Flag to toggle QuickSelects UI
     */
    showQuickSelect: boolean;
    /**
     * Type of TimeFilter to render
     */
    dateTimeSetting: DateTimeSetting;
    /**
     * Time zone to use
     */
    timeZone: string;
    /**
     * Format for date/time input
     */
    format?: DateUnit;
    /**
     * Accuracy of the time input
     */
    accuracy?: Gemstone.TSX.Types.Accuracy;
    /**
     * Flag to toggle usage of helper message
     */
    showHelpMessage?: boolean;
}
declare const TimeFilter: (props: IProps) => React.JSX.Element;
export declare function getTimeWindowFromFilter(flt: ITimeFilter, format?: string): ITimeWindow;
export default TimeFilter;
