import { PropType, Ref, EmitFn, ComputedRef } from 'vue';
import { validateNumber, type Timestamp } from '../utils/Timestamp';
export interface Task {
    [key: string]: any;
}
export declare const useTaskProps: {
    modelValue: {
        type: StringConstructor;
        default: string;
        validator: (v: string) => boolean;
    };
    modelTasks: {
        type: () => Array<any>;
        default: () => any[];
    };
    modelTitle: {
        type: () => Array<any>;
        default: () => any[];
    };
    modelFooter: {
        type: () => Array<any>;
        default: () => any[];
    };
    taskKey: {
        type: PropType<string | number>;
        default: string;
    };
    weekdays: {
        type: () => number[];
        default: () => number[];
    };
    dateType: {
        type: () => "round" | "rounded" | "square";
        default: string;
        validator: (v: string) => boolean;
    };
    dateHeader: {
        type: () => "stacked" | "inline" | "inverted";
        default: string;
        validator: (v: string) => boolean;
    };
    weekdayAlign: {
        type: () => "left" | "center" | "right";
        default: string;
        validator: (v: string) => boolean;
    };
    dateAlign: {
        type: () => "left" | "center" | "right";
        default: string;
        validator: (v: string) => boolean;
    };
    dayHeight: {
        type: (StringConstructor | NumberConstructor)[];
        default: number;
        validator: typeof validateNumber;
    };
    dayMinHeight: {
        type: (StringConstructor | NumberConstructor)[];
        default: number;
        validator: typeof validateNumber;
    };
    weekdayStyle: {
        type: FunctionConstructor;
        default: null;
    };
    weekdayClass: {
        type: FunctionConstructor;
        default: null;
    };
    dayStyle: {
        type: FunctionConstructor;
        default: null;
    };
    dayClass: {
        type: FunctionConstructor;
        default: null;
    };
    footerDayClass: {
        type: FunctionConstructor;
        default: null;
    };
    view: {
        type: () => "day" | "week" | "month";
        validator: (v: string) => boolean;
    };
    viewCount: {
        type: NumberConstructor;
        default: number;
        validator: (v: number) => boolean;
    };
    taskWidth: {
        type: NumberConstructor;
        default: number;
        validator: (v: number) => boolean;
    };
};
interface TaskReturn {
    parsedStartDate: ComputedRef<Timestamp | null>;
    parsedEndDate: ComputedRef<Timestamp | null>;
    days: Ref<Timestamp[]>;
}
export default function useTask(props: {
    view: 'day' | 'week' | 'month';
    modelValue: string;
    viewCount: number;
    weekdays: number[];
    disabledBefore?: string;
    disabledAfter?: string;
    disabledWeekdays?: number[];
    disabledDays?: string[];
}, emit: EmitFn, { times, }: {
    times: {
        today: Timestamp;
    };
}): TaskReturn;
export {};
