import { noChange } from 'lit';
import { type AttributePart, Directive, type DirectiveParameters, type PartInfo } from 'lit/directive.js';
export interface PartMapInfo {
    readonly [name: string]: boolean | null | undefined;
}
declare class PartMapDirective extends Directive {
    private _previousParts?;
    constructor(partInfo: PartInfo);
    render(partMapInfo: PartMapInfo): string;
    update(part: AttributePart, [partMapInfo]: DirectiveParameters<this>): string | typeof noChange;
}
/**
 * Similar to Lit's {@link https://lit.dev/docs/templates/directives/#classmap | `classMap`} and
 * {@link https://lit.dev/docs/templates/directives/#stylemap | `styleMap`} but for `part` attributes.
 */
export declare const partMap: (partMapInfo: PartMapInfo) => import("lit-html/directive.js").DirectiveResult<typeof PartMapDirective>;
export type { PartMapDirective };
