///
import * as moment from 'moment';
import * as React from 'react';
import { Sizes } from 'react-bootstrap';
import { SyntheticEvent } from 'react';
export declare type TimeSpanInputUnit = moment.unitOfTime.Base;
export interface TimeSpanInputProps {
bsClass?: string;
bsSize?: Sizes;
controlId?: string;
duration?: moment.Duration;
units?: TimeSpanInputUnit[];
initialUnit?: TimeSpanInputUnit;
initialDuration?: moment.Duration;
precision?: number;
reparseButton?: boolean;
onMomentDurationChanged?: (duration: moment.Duration | undefined, unit: TimeSpanInputUnit) => void;
onMomentUnitChanged?: (unit: TimeSpanInputUnit, duration: moment.Duration | undefined) => void;
}
export interface TimeSpanInputComponentProps extends React.HTMLProps, TimeSpanInputProps {
}
export interface TimeSpanInputState {
unit: TimeSpanInputUnit;
input: string;
duration?: moment.Duration;
error?: string;
}
export declare class TimeSpanInput extends React.Component {
static DefaultPrecision: number;
static InvalidFormatError: string;
static InvalidAmountError: string;
static InvalidUnitError: string;
static defaultProps: Partial;
static formatDuration(duration: moment.Duration | undefined, unit: TimeSpanInputUnit, precision?: number): string;
static parseDuration(state: TimeSpanInputState, props: TimeSpanInputProps): TimeSpanInputState;
constructor(props: any);
componentDidUpdate(prevProps: Readonly, prevState: Readonly, prevContext: any): void;
render(): JSX.Element;
protected renderFormInput(): JSX.Element;
protected renderTextInput(): React.ReactElement;
protected renderButtons(): JSX.Element;
protected renderDropdown(): JSX.Element;
protected renderHelp(): "" | JSX.Element | undefined;
protected handleChangeUnit(unit: TimeSpanInputUnit): void;
private handleReparse();
protected handleIncreaseDuration(): void;
protected handleDecreaseDuration(): void;
protected handleInput(e: SyntheticEvent): void;
protected handleParse(): void;
protected cloneDurationFromState(state: TimeSpanInputState): moment.Duration;
protected adjustDurationFromState(state: TimeSpanInputState, amount: number): moment.Duration;
}