import React from 'react';
import { TTransitionsDurationProperties } from '@amaui/style-react';
import { IBaseElement } from '../types';
export type TTransitionStatus = 'appended' | 'add' | 'adding' | 'added' | 'enter' | 'entering' | 'entered' | 'exit' | 'exiting' | 'exited' | 'removed';
export declare const STATUS: Record<TTransitionStatus, TTransitionStatus>;
export interface ITransitionDelay {
    default?: number;
    add?: number;
    enter?: number;
    exit?: number;
}
export interface ITransition extends Omit<IBaseElement, 'children' | 'className'> {
    in?: boolean;
    name?: string;
    className?: boolean;
    prefix?: string;
    run?: boolean;
    append?: boolean;
    add?: boolean;
    enter?: boolean;
    exit?: boolean;
    enterOnAdd?: boolean;
    exitOnAdd?: boolean;
    noAbruption?: boolean;
    removeOnExited?: boolean;
    preEnterAppendTimeout?: number;
    delay?: TTransitionsDurationProperties | number | ITransitionDelay;
    duration?: TTransitionsDurationProperties | number | ITransitionDelay;
    onTransition?: (element: HTMLElement, status: TTransitionStatus) => void;
    onInit?: (element: HTMLElement) => void;
    onAppended?: (element: HTMLElement) => void;
    onAdd?: (element: HTMLElement) => void;
    onAdding?: (element: HTMLElement) => void;
    onAdded?: (element: HTMLElement) => void;
    onEnter?: (element: HTMLElement) => void;
    onEntering?: (element: HTMLElement) => void;
    onEntered?: (element: HTMLElement) => void;
    onExit?: (element: HTMLElement) => void;
    onExiting?: (element: HTMLElement) => void;
    onExited?: (element: HTMLElement) => void;
    onRemoved?: (element: HTMLElement) => void;
    children?: any;
    [p: string]: any;
}
declare const Transition: React.FC<ITransition>;
export default Transition;
