import { type DefineComponent } from "vue";
export type InputModel = string | number | boolean | null;
export declare enum AUTH_CODE_TYPE {
    ALL = "ALL",
    ALPHA = "ALPHA",
    ALPHANUMERIC = "ALPHANUMERIC",
    NUMERIC = "NUMERIC"
}
export interface GlobalDialogType extends DefineComponent {
    onDialogOK: (v?: any) => void;
    onDialogCancel: () => void;
    validate: () => Promise<boolean>;
    reset: () => void;
}
export type DatePickerData = Date | {
    start: Date;
    end: Date;
};
export interface PickerGroup {
    label: string;
    value: string;
    options: PickerOption[];
}
export interface PickerOption {
    label: string;
    value: string;
}
export interface CheckboxOption {
    key?: string;
    label: string;
    value: any;
    disable?: boolean;
    suffix?: {
        text: string;
        class: string;
    };
}
export interface TableColumn<T> {
    name: string;
    label: string;
    field: keyof T | ((v: T) => any);
    sort?: boolean | ((a: {
        index: number;
        value: any;
    }, b: {
        index: number;
        value: any;
    }) => number);
    hide?: boolean;
    format?: (v: any) => string;
    align?: "left" | "right" | "center";
    option?: {
        style?: string;
        class?: string;
    };
}
export interface TableOption<T> {
    columns: TableColumn<T>[];
    data: T[];
    rowId?: keyof T | ((v: T) => string);
    initialSort?: {
        key: string;
        descending?: boolean;
    };
    pagination?: {
        sortBy?: string;
        descending?: boolean;
        page?: number;
        rowsPerPage?: number;
    };
}
export interface MoreActionOption {
    label: string;
    class?: string;
    disable?: boolean | string;
    hide?: boolean;
    callback: () => Promise<unknown>;
}
export interface MapCoordinate {
    lat: number;
    lng: number;
}
export interface MapPolygon {
    paths: MapCoordinate[];
    strokeColor?: string;
    fillColor?: string;
}
export interface MarkerChangeEvent {
    index: number;
    position: MapCoordinate;
}
export interface PolygonChangeEvent {
    index: number;
    path: MapCoordinate[];
}
