import { AllowedComponentProps } from 'vue';
import type { App } from 'vue';
import { ComponentCustomProps } from 'vue';
import { ComponentOptionsMixin } from 'vue';
import { ComputedRef } from 'vue';
import { CronFormat } from '@vue-js-cron/core';
import { DefineComponent } from 'vue';
import { ExtractPropTypes } from 'vue';
import { Field } from '@vue-js-cron/core';
import { FieldItem } from '@vue-js-cron/core';
import { Localization } from '@vue-js-cron/core';
import { Period } from '@vue-js-cron/core';
import { PropType } from 'vue';
import { Ref } from 'vue';
import { VNodeProps } from 'vue';

export declare const CronVuetify: DefineComponent<{
    modelValue: {
        type: StringConstructor;
    };
    period: {
        type: StringConstructor;
    };
    format: {
        type: PropType<CronFormat>;
    };
    locale: {
        type: StringConstructor;
    };
    fields: {
        type: PropType<Field[]>;
    };
    periods: {
        type: PropType<Period[]>;
    };
    customLocale: {
        type: PropType<Localization>;
    };
    cols: {
        type: PropType<Record<string, number>>;
        default: () => {
            second: number;
            minute: number;
            hour: number;
            day: number;
        };
    };
    disabled: {
        type: BooleanConstructor;
        default: boolean;
    };
    /**
     * Properties of Vuetify VChip
     *
     * @remarks
     * See {@link https://vuetifyjs.com/en/api/v-chip/#props}
     */
    chipProps: {
        type: ObjectConstructor;
        default(): {};
    };
}, {
    cron: Ref<string>;
    error: Ref<string>;
    segments: {
        id: string;
        items: FieldItem[];
        cron: Ref<string>;
        selected: Ref<number[]>;
        error: Ref<string>;
        select: (evt: number[]) => void;
        text: Ref<string>;
        prefix: Ref<string>;
        suffix: Ref<string>;
    }[];
    selected: ComputedRef<{
        id: string;
        items: FieldItem[];
        cron: Ref<string>;
        selected: Ref<number[]>;
        error: Ref<string>;
        select: (evt: number[]) => void;
        text: Ref<string>;
        prefix: Ref<string>;
        suffix: Ref<string>;
    }[]>;
    period: {
        select: (periodId: string) => void;
        selected: Ref<{
            id: string;
            value: string[];
            text?: string | undefined;
        } | {
            text: any;
            id: string;
            value: string[];
        }>;
        items: {
            text: any;
            id: string;
            value: string[];
        }[];
        prefix: Ref<string>;
        suffix: Ref<string>;
    };
}, unknown, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, ("update:model-value" | "update:period" | "error")[], "update:model-value" | "update:period" | "error", VNodeProps & AllowedComponentProps & ComponentCustomProps, Readonly<ExtractPropTypes<{
    modelValue: {
        type: StringConstructor;
    };
    period: {
        type: StringConstructor;
    };
    format: {
        type: PropType<CronFormat>;
    };
    locale: {
        type: StringConstructor;
    };
    fields: {
        type: PropType<Field[]>;
    };
    periods: {
        type: PropType<Period[]>;
    };
    customLocale: {
        type: PropType<Localization>;
    };
    cols: {
        type: PropType<Record<string, number>>;
        default: () => {
            second: number;
            minute: number;
            hour: number;
            day: number;
        };
    };
    disabled: {
        type: BooleanConstructor;
        default: boolean;
    };
    /**
     * Properties of Vuetify VChip
     *
     * @remarks
     * See {@link https://vuetifyjs.com/en/api/v-chip/#props}
     */
    chipProps: {
        type: ObjectConstructor;
        default(): {};
    };
}>> & {
    "onUpdate:model-value"?: ((...args: any[]) => any) | undefined;
    onError?: ((...args: any[]) => any) | undefined;
    "onUpdate:period"?: ((...args: any[]) => any) | undefined;
}, {
    chipProps: Record<string, any>;
    cols: Record<string, number>;
    disabled: boolean;
}, {}>;

declare const CronVuetifyPlugin: {
    install: (app: App) => void;
};
export { CronVuetifyPlugin }
export default CronVuetifyPlugin;

/**
 * Props of {@link CronVuetify}
 *
 * See {@link @vue-js-cron/core!CronCoreProps | CronCoreProps} for a detailed description of each prop
 *
 * @interface
 */
export declare type CronVuetifyProps = Partial<ExtractPropTypes<ReturnType<typeof cronVuetifyProps>>>;

export declare const cronVuetifyProps: () => {
    modelValue: {
        type: StringConstructor;
    };
    period: {
        type: StringConstructor;
    };
    format: {
        type: PropType<CronFormat>;
    };
    locale: {
        type: StringConstructor;
    };
    fields: {
        type: PropType<Field[]>;
    };
    periods: {
        type: PropType<Period[]>;
    };
    customLocale: {
        type: PropType<Localization>;
    };
    cols: {
        type: PropType<Record<string, number>>;
        default: () => {
            second: number;
            minute: number;
            hour: number;
            day: number;
        };
    };
    disabled: {
        type: BooleanConstructor;
        default: boolean;
    };
    /**
     * Properties of Vuetify VChip
     *
     * @remarks
     * See {@link https://vuetifyjs.com/en/api/v-chip/#props}
     */
    chipProps: {
        type: ObjectConstructor;
        default(): {};
    };
};

export { }
