import { Directive, type PartInfo } from '../../lit-exports/all-lit-exports.js'; /** * Parameters for the callback given to the {@link mutate} directive. * * @category Internal */ export type MutateDirectiveParams = { directive: Directive; element: HTMLElement; params: Params; }; /** * A directive that allows arbitrary modifications to be made to the element that it's attached to. * * @category Directives */ export declare const mutate: (callback: (params: Omit) => void) => import("lit-html/directive.js").DirectiveResult<{ new (partInfo: PartInfo): { readonly element: HTMLElement; lastKey: string | undefined; render(callback: (params: Omit) => void): symbol; get _$isConnected(): boolean; update(_part: import("lit-html").Part, props: Array): unknown; }; }>; /** * A helper for making new directives. * * @category Internal */ export declare function createMutateDirective(directiveName: string, callback: (this: void, params: MutateDirectiveParams) => void): (...values: Params) => import("lit-html/directive.js").DirectiveResult<{ new (partInfo: PartInfo): { readonly element: HTMLElement; render(...params: Params): symbol; get _$isConnected(): boolean; update(_part: import("lit-html").Part, props: Array): unknown; }; }>;