import type { App, RenderFunction } from 'vue'; import { VNode } from 'vue'; export interface ArcoOptions { classPrefix?: string; componentPrefix?: string; } export interface ArcoIconOptions { iconPrefix?: string; } export interface ArcoGlobalConfig { classPrefix?: string; } declare type UnionToIntersection = (U extends any ? (k: U) => void : never) extends (k: infer I) => void ? I : never; export declare type BaseType = string | number; export declare type UnionType = BaseType | Record; export declare type Data = Record; export declare type RenderContent = string | RenderFunction; export declare type EmitFn = (event: T, ...args: any[]) => void; export declare type EmitFn2, Event extends keyof Options = keyof Options> = UnionToIntersection<{ [key in Event]: Options[key] extends (...args: infer Args) => any ? (event: key, ...args: Args) => void : (event: key, ...args: any[]) => void; }[Event]>; export declare type EmitType = T | T[]; export declare type SFCWithInstall> = T & D & { install: (app: App, opt?: ArcoOptions) => void; }; export declare type ClassName = string | Record | (string | Record)[]; export declare type FieldString = { [K in keyof T]?: string; }; export interface SlotChildren { value?: VNode[]; } export interface ValueData { value: string | number; label: string; closable?: boolean; [other: string]: any; } export declare type AnimationDuration = number | { enter: number; leave: number; }; export {};