/**
 * 通知服务的基础配置接口
 */
export interface BaseConfig {
    debug?: boolean;
}
/**
 * 邮件配置接口
 */
export interface EmailConfig extends BaseConfig {
    host: string;
    port: number;
    secure: boolean;
    auth: {
        user: string;
        pass: string;
    };
}
export interface LarkConfig extends BaseConfig {
    notifyUrl: string;
}
/**
 * 阿里云短信配置接口
 */
export interface AliSmsConfig extends BaseConfig {
    accessKeyId: string;
    accessKeySecret: string;
    signName: string;
}
/**
 * 火山引擎短信配置接口
 */
export interface VolcSmsConfig extends BaseConfig {
    accessKeyId: string;
    accessKeySecret: string;
    signName: string;
    region?: string;
}
/**
 * 华为云短信配置接口
 */
export interface HuaweiSmsConfig extends BaseConfig {
    endpoint: string;
    accessKeyId: string;
    accessKeySecret: string;
    signName: string;
    sender: string;
}
/**
 * 邮件消息接口
 */
export interface EmailMessage {
    from?: string;
    to: string | string[];
    subject: string;
    text?: string;
    html?: string;
}
/**
 * 短信消息基础接口
 */
export interface BaseSmsMessage {
    phoneNumbers: string | string[];
    templateId: string;
    templateParams?: Record<string, string>;
    statusCallBack?: string;
    signature?: string;
    tag?: string;
}
export interface LarkMessage {
    card: {
        config: object;
        header: object;
        elements: object[];
    };
    msg_type: string;
    receive_id?: number;
}
/**
 * 通知发送结果接口
 */
export interface SendResult {
    success: boolean;
    messageId?: string;
    error?: Error;
}
/**
 * 通知提供者接口
 */
export interface NotificationProvider {
    /**
     * 发送通知
     * @param message 消息内容
     * @returns 发送结果
     */
    send(message: EmailMessage | BaseSmsMessage): Promise<SendResult>;
}
/**
 * 通知服务错误类
 */
export declare class NotificationError extends Error {
    code?: string | undefined;
    constructor(message: string, code?: string | undefined);
}
//# sourceMappingURL=index.d.ts.map