import { default as React } from 'react';
import { IABaseProps } from '../ABase/ABase';
import { TActionRef } from '../ATypes/ATypes';
import { IAWrapProps } from '../AWrap/AWrap';
export interface IAClockActions {
    /**
     * reset : () => void
     *
     * Description : set clock's tick to maxTicks and stop clock running
     */
    reset: () => void;
    /**
     * setTicks : (ticks: number) => void
     *
     * Description : set clock's tick to specified number
     */
    setTicks: (ticks: number) => void;
    /**
     * start : () => void
     *
     * Description : start clock running
     */
    start: () => void;
    /**
     * stop : () => void
     *
     * Description : stop clock running
     */
    stop: () => void;
}
export interface IAClockProps extends IAWrapProps, IABaseProps {
    /**
     * actionRef? : TActionRef&lt;IAClockActions>
     *
     * Description : actionRef of AClock
     */
    actionRef?: TActionRef<IAClockActions>;
    /**
     * interval? : number = 1000
     *
     * Description : interval in milliseconds of AClock
     */
    interval?: number;
    /**
     * maxTicks? : number = 300
     *
     * Description : maxTicks of AClock
     */
    maxTicks?: number;
    /**
     * noStartOnRender? : boolean
     *
     * Description : if true, AClock will not start on render
     */
    noStartOnRender?: boolean;
    /**
     * onFinish? : () => void
     *
     * Description : onFinish of AClock
     */
    onFinish?: () => void;
}
/**
 * AComponent : AClock
 *
 * Description : AClock is a clock component.
 *
 * Basic Usage :
 *
 *     const actionRef = useRef<IAClockActions>()
 *     const onFinish = () => { console.log('Clock Finished') }
 *     const onStartClick = () => { actionRef.current?.start() }
 *     const onStopClick = () => { actionRef.current?.stop() }
 *
 *     if (case 1)
 *       <AClock onFinish={onFinish} actionRef={ref}/>
 *       <AButton onClick={onStartClick}>Start</AButton>
 *       <AButton onClick={onStopClick}>Stop</AButton>
 *       <AButton onClick={actionRef.current?.reset}>Reset</AButton>
 */
export declare const AClock: (props: IAClockProps) => React.ReactNode;
