import { AlertProps as IProps } from 'element-plus'; import { Component } from 'vue'; import { InputProps } from '../Input'; import { RadioProps } from '../Radio'; import { SelectProps } from '../Select'; import { ZiSwitchProps } from '../Switch'; export type ElAlertProps = IProps; type ActionType = { actionType: T; } & P; export type AlertAction = ActionType<'switch', ZiSwitchProps> | ActionType<'radio', RadioProps> | ActionType<'input', InputProps> | ActionType<'select', SelectProps>; export interface AlertProps extends Partial> { type?: IProps['type'] | 'default'; description?: string | Component; icon?: string | Component; action?: AlertAction; shadow?: boolean; noBackground?: boolean; } export type AlertSlots = { default: () => void; }; export interface AlertEmits { (e: 'change', value: any): void; (e: 'close', value: any): void; } export {};