export declare function debounce(ms?: number): (target: any, key: string, descriptor: PropertyDescriptor) => PropertyDescriptor;
export declare function evt(): (protoOrDescriptor: any, name: string) => any;
type Detail<T> = {
    detail: T;
};
export declare class Evt<T extends Detail<V>, V = any> {
    private target;
    private eventName;
    constructor(target: HTMLElement, eventName: string);
    emit(value: T extends Detail<infer U> ? U : never, options?: {
        bubbles?: boolean;
        composed?: boolean;
        cancelable?: boolean;
    }): void;
}
export type TemplateInfo = {
    content: string;
    insertIndex: number;
    col: number;
    row: number;
};
type TCallback = TemplateInfo & {
    fragment: DocumentFragment;
};
export type TemplateCallback = (p: TCallback) => void;
export {};
