export { type AttrMap, type AttrValue, resolveAttrValue, } from "./resolveAttrValue";
import type { AttrMap } from "./resolveAttrValue";
/**
* A plain attribute value — a string, number, or boolean.
* - `true` → sets the attribute with an empty string value (boolean attribute)
* - `false` → removes the attribute
* - string/number → sets the attribute to that value
*/
type PlainValue = string | number | boolean;
/**
* Conditional attribute value (2-element tuple):
* [condition, value]
* The attribute is only applied when `condition` is truthy.
* When falsy, the attribute is removed from the element.
*/
type ConditionalValue = [condition: unknown, value: PlainValue];
/**
* Ternary attribute value (3-element tuple):
* [condition, trueValue, falseValue]
* Sets the attribute to `trueValue` when condition is truthy,
* `falseValue` otherwise.
*/
type TernaryValue = [
condition: unknown,
trueValue: PlainValue,
falseValue: PlainValue
];
export type { PlainValue, ConditionalValue, TernaryValue };
/**
* Declarative, conditional attribute directive for lit-html templates.
*
* Accepts a map of attribute names to values. Values can be:
* - **plain**: always applied (`"aria-label": "Close"`)
* - **boolean**: `true` sets the attribute (empty value), `false` removes it
* (`disabled: isDisabled`)
* - **conditional** (2-element array): applied only when condition is truthy
* (`"aria-expanded": [isOpen, "true"]`)
* - **ternary** (3-element array): picks between two values
* (`"aria-pressed": [isActive, "true", "false"]`)
*
* Attributes whose conditions are falsy (or whose keys are removed between
* renders) are automatically removed from the element.
*
* @example
* ```ts
* import { html } from "mates";
* import { attr } from "mates";
*
* const isDisabled = false;
* const isOpen = true;
*
* html`
*
* `;
* ```
*/
export declare function attr(attrs: AttrMap): import("lit-html/directive").DirectiveResult;
/** No-op — kept for backwards compatibility. */
export declare function removeAttr(_el: Element): void;
//# sourceMappingURL=attrDirective.d.ts.map