/**
 * Render-time migration helper that rewrites Vuetify 3 attribute syntax to
 * Vuetify 4 inside Document templates. Used by `useDocumentTemplate`.
 *
 * Rules without `appliesTo` are universally safe and run in both the per-item
 * pre-pass and the post-pass on the assembled template string. Rules with
 * `appliesTo` only run in the pre-pass and only when `item.inputType` (or the
 * tag name) matches.
 *
 * See `docs/superpowers/specs/2026-04-26-document-template-vuetify4-migration-design.md`.
 */
export interface Vuetify4MigrationRule {
    /** v3 bare boolean attribute name, e.g. 'dense'. */
    from: string;
    /** v4 replacement attribute incl. value, e.g. 'density="compact"'. */
    to: string;
    /**
     * Optional whitelist of input types / tag names the rule applies to. If
     * omitted, the rule is universally safe and also runs in the post-pass.
     */
    appliesTo?: string[];
}
/** Default rule table. Mutable / extensible by callers. */
export declare const vuetify4MigrationRules: Vuetify4MigrationRule[];
/**
 * Walk an attribute string (the part inside `<tag …>`), replacing each bare
 * boolean attribute that matches a rule with the rule's replacement. Skips
 * text inside quoted attribute values. Internal — exported for unit tests.
 */
export declare function migrateAttributeString(attrs: string, applicableRules: Vuetify4MigrationRule[]): string;
/**
 * Per-item pre-pass. Filter the rule set to rules that apply to `inputType`
 * (rules with no `appliesTo` always apply), then rewrite the attribute string.
 */
export declare function migrateInputAttributes(attrs: string, inputType: string, rules?: Vuetify4MigrationRule[]): string;
/**
 * Post-pass on the assembled template string. Walks opening tags (skipping
 * closing tags and comments), extracts each tag's attribute region with
 * quote-awareness so `>` inside `"…"` does not prematurely end the tag, then
 * rewrites the attributes using only rules that have no `appliesTo` — those
 * are universally safe to apply across both Vuetify and custom components.
 */
export declare function migrateTemplateString(template: string, rules?: Vuetify4MigrationRule[]): string;
