import { KMsgError, type Result, type Template, type TemplateContext, type TemplateCreateInput, type TemplateProvider, type TemplateUpdateInput } from "@k-msg/core";
import type { IWINVConfig } from "./types/iwinv";
export declare class IWINVTemplateProvider implements TemplateProvider {
    readonly id = "iwinv";
    private readonly config;
    constructor(config: IWINVConfig);
    createTemplate(input: TemplateCreateInput): Promise<Result<Template, KMsgError>>;
    updateTemplate(code: string, patch: TemplateUpdateInput, ctx?: TemplateContext): Promise<Result<Template, KMsgError>>;
    deleteTemplate(code: string): 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 createIWINVTemplateProvider: (config: IWINVConfig) => IWINVTemplateProvider;
export declare const createDefaultIWINVTemplateProvider: () => IWINVTemplateProvider;
export declare class IWINVTemplateProviderFactory {
    static create(config: IWINVConfig): IWINVTemplateProvider;
    static createDefault(): IWINVTemplateProvider;
}
export { createTemplate, deleteTemplate, getTemplate, listTemplates, updateTemplate, } from "./iwinv.template";
export type { IWINVConfig } from "./types/iwinv";
