import { HeadPluginInput, HeadTag, BaseMeta, MetaFlatInput, Head, HeadEntry, MaybeArray, HeadSafe, TemplateParams } from '@unhead/schema'; type Arrayable = T | Array; declare function asArray(value: Arrayable): T[]; declare const SelfClosingTags: Set; declare const TagsWithInnerContent: Set; declare const HasElementTags: Set; declare const ValidHeadTags: Set; declare const UniqueTags: Set; declare const TagConfigKeys: Set; declare const IsBrowser: boolean; declare const composableNames: string[]; declare function defineHeadPlugin(plugin: HeadPluginInput): HeadPluginInput; declare function hashCode(s: string): string; declare function hashTag(tag: HeadTag): string; declare function resolveMetaKeyType(key: string): keyof BaseMeta; declare function resolveMetaKeyValue(key: string): string; declare function resolvePackedMetaObjectValue(value: string, key: string): string; /** * Converts a flat meta object into an array of meta entries. * @param input */ declare function unpackMeta(input: T): Required['meta']; /** * Convert an array of meta entries to a flat object. * @param inputs */ declare function packMeta['meta']>(inputs: T): MetaFlatInput; type Thenable = Promise | T; declare function thenable(val: T, thenFn: (val: Awaited) => R): Promise | R; declare function normaliseTag(tagName: T['tag'], input: HeadTag['props'] | string, e: HeadEntry, normalizedProps?: HeadTag['props']): Thenable; declare function normaliseStyleClassProps(key: T, v: Required['htmlAttrs']['class']> | Required['htmlAttrs']['style']>): string; declare function normaliseProps(props: T['props'], virtual?: boolean): Thenable; declare const TagEntityBits = 10; declare function normaliseEntryTags(e: HeadEntry): Thenable; declare function whitelistSafeInput(input: Record>>): HeadSafe; declare const NetworkEvents: Set; declare const ScriptNetworkEvents: Set; declare const TAG_WEIGHTS: { readonly base: -10; readonly title: 10; }; declare const TAG_ALIASES: { readonly critical: -80; readonly high: -10; readonly low: 20; }; declare function tagWeight(tag: T): number; declare const SortModifiers: { prefix: string; offset: number; }[]; declare function tagDedupeKey(tag: T): string | false; declare function processTemplateParams(s: string, p: TemplateParams, sep: string, isJson?: boolean): string; declare function resolveTitleTemplate(template: string | ((title?: string) => string | null) | null, title?: string): string | null; export { type Arrayable, HasElementTags, IsBrowser, NetworkEvents, ScriptNetworkEvents, SelfClosingTags, SortModifiers, TAG_ALIASES, TAG_WEIGHTS, TagConfigKeys, TagEntityBits, TagsWithInnerContent, type Thenable, UniqueTags, ValidHeadTags, asArray, composableNames, defineHeadPlugin, hashCode, hashTag, normaliseEntryTags, normaliseProps, normaliseStyleClassProps, normaliseTag, packMeta, processTemplateParams, resolveMetaKeyType, resolveMetaKeyValue, resolvePackedMetaObjectValue, resolveTitleTemplate, tagDedupeKey, tagWeight, thenable, unpackMeta, whitelistSafeInput };