import { type KakaoChannel, type KakaoChannelCategories, type KakaoChannelProvider, type KMsgError, type MessageType, type Provider, type ProviderHealthStatus, type Result, type SendOptions, type SendResult, type Template, type TemplateContext, type TemplateCreateInput, type TemplateInspectionProvider, type TemplateProvider, type TemplateUpdateInput } from "@k-msg/core";
import type { AligoConfig } from "./types/aligo";
export declare class AligoProvider implements Provider, TemplateProvider, TemplateInspectionProvider, KakaoChannelProvider {
    private readonly config;
    readonly id = "aligo";
    readonly name = "Aligo Smart SMS";
    readonly supportedTypes: readonly MessageType[];
    private readonly smsHost;
    private readonly alimtalkHost;
    getOnboardingSpec(): import("@k-msg/core").ProviderOnboardingSpec;
    constructor(config: AligoConfig);
    private getRuntimeContext;
    healthCheck(): Promise<ProviderHealthStatus>;
    send(options: SendOptions): Promise<Result<SendResult, KMsgError>>;
    listKakaoChannels(params?: {
        plusId?: string;
        senderKey?: string;
    }): Promise<Result<KakaoChannel[], KMsgError>>;
    listKakaoChannelCategories(): Promise<Result<KakaoChannelCategories, KMsgError>>;
    requestKakaoChannelAuth(params: {
        plusId: string;
        phoneNumber: string;
    }): Promise<Result<void, KMsgError>>;
    addKakaoChannel(params: {
        plusId: string;
        authNum: string;
        phoneNumber: string;
        categoryCode: string;
    }): Promise<Result<KakaoChannel, KMsgError>>;
    createTemplate(input: TemplateCreateInput, ctx?: TemplateContext): Promise<Result<Template, KMsgError>>;
    updateTemplate(code: string, patch: TemplateUpdateInput, ctx?: TemplateContext): Promise<Result<Template, KMsgError>>;
    deleteTemplate(code: string, ctx?: TemplateContext): Promise<Result<void, KMsgError>>;
    getTemplate(code: string, ctx?: TemplateContext): Promise<Result<Template, KMsgError>>;
    listTemplates(params?: {
        status?: string;
        page?: number;
        limit?: number;
    }, ctx?: TemplateContext): Promise<Result<Template[], KMsgError>>;
    requestTemplateInspection(code: string, ctx?: TemplateContext): Promise<Result<void, KMsgError>>;
}
export declare const createAligoProvider: (config: AligoConfig) => AligoProvider;
export declare const createDefaultAligoProvider: () => AligoProvider;
export declare class AligoProviderFactory {
    static create(config: AligoConfig): AligoProvider;
    static createDefault(): AligoProvider;
}
export declare function initializeAligo(): void;
