import { ILocale, TAvailableLocale } from '../locale';
import { IRawDate, TDateLocale } from '../utils';
import { ComputedRef, PropType } from 'vue';
export interface IDatetimeProps {
    modelValue: string | TDatetimeValueRange | Array<string | TDatetimeValueRange>;
    mask: string;
    locale?: ILocale | TAvailableLocale;
    readonly?: boolean;
    disabled?: boolean;
}
export interface IUseDatetime {
    editable: ComputedRef<boolean>;
    tabindex: ComputedRef<number>;
    getCurrentDate: (dateOnly?: boolean) => IRawDate;
    getShortDate: (date: IRawDate) => Partial<IRawDate>;
    getLocale: () => TDateLocale;
    getMask: () => string;
    decodeString: (date: string) => IRawDate;
}
export type TDatetimeValueRange = {
    from: string | IRawDate;
    to: string | IRawDate;
    target?: string | IRawDate;
};
export declare const makeDatetimeProps: <Defaults extends {
    modelValue?: unknown;
    mask?: unknown;
} = {}>(defaults?: Defaults | undefined) => import('../utils').AppendDefault<{
    /**
     * Значение модели
     */
    modelValue: {
        type: PropType<string | TDatetimeValueRange | Array<string | TDatetimeValueRange>>;
        default: null;
    };
    /**
     * Формат даты/времени
     */
    mask: {
        type: PropType<string>;
        default: string;
    };
}, Defaults>;
export declare function useDatetime(props: IDatetimeProps): IUseDatetime;
export declare function getDayHash(date: IRawDate): string;
