export interface ParsedElementTemplateType {
    templateKey: string;
    bundleUrl: string | null;
}
/**
 * The `globDynamicComponentEntry` value baked into main-bundle templates. It
 * denotes "the main card", which is equivalent to having no `bundleUrl`, so it
 * normalizes to `null` everywhere the template type is parsed.
 */
export declare const MAIN_BUNDLE_URL_SENTINEL = "__Card__";
export declare function parseElementTemplateType(type: string): ParsedElementTemplateType;
/**
 * The native identity for a template: the bundle-scoped key the main-thread
 * registers it under. The main card has no bundle, so its sentinel is stripped
 * to a bare `templateKey` (preserving native behavior); lazy bundles keep their
 * `${bundleUrl}:${templateKey}` form.
 */
export declare function elementTemplateIdentityKey(templateKey: string, bundleUrl: string | null | undefined): string;
/**
 * The full `${globDynamicComponentEntry}:${templateKey}` tag the transform bakes
 * into compiled templates and uses as the `__etAttrPlanMap` key. It always keeps
 * the `__Card__` sentinel for the main card (unlike {@link elementTemplateIdentityKey},
 * which strips it). Inverse of {@link parseElementTemplateType}.
 */
export declare function elementTemplateTypeTag(templateKey: string, bundleUrl: string | null | undefined): string;
