import type { KMsgError, Result, Template, TemplateContext, TemplateCreateInput, TemplateProvider, TemplateUpdateInput } from "@k-msg/core";
import { IWINVSendProvider } from "./provider.send";
import type { IWINVConfig } from "./types/iwinv";
export declare class IWINVProvider extends IWINVSendProvider implements TemplateProvider {
    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>>;
}
export declare const createIWINVProvider: (config: IWINVConfig) => IWINVProvider;
export declare const createDefaultIWINVProvider: () => IWINVProvider;
export declare class IWINVProviderFactory {
    static create(config: IWINVConfig): IWINVProvider;
    static createDefault(): IWINVProvider;
}
export declare function initializeIWINV(): void;
