import { type Primitive } from 'type-fest';
import { nothing } from '../../lit-exports/all-lit-exports.js';
/**
 * Possible attribute values for {@link AttributeValues}.
 *
 * @category Internal
 */
export type AttributeValue = Exclude<Primitive, symbol> | string | typeof nothing;
/**
 * Parameters object for applying attributes to an HTML element via the {@link attributes} directive.
 * Make sure that all keys (attribute names) are lowercase.
 *
 * @category Internal
 */
export type AttributeValues = {
    [LowercaseKey in Lowercase<string>]: AttributeValue;
};
/**
 * A directive applies multiple HTML attributes to the parent element all at once.
 *
 * @category Directives
 */
export declare const attributes: (values_0: AttributeValues) => import("lit-html/directive.js").DirectiveResult<{
    new (partInfo: import("lit-html/directive.js").PartInfo): {
        readonly element: HTMLElement;
        render(params_0: AttributeValues): symbol;
        readonly _$isConnected: boolean;
        update(_part: import("lit-html").Part, props: Array<unknown>): unknown;
    };
}>;
