export interface ResolvedScaffoldIdentifiers { namespace: string; phpPrefix: string; slug: string; textDomain: string; } export declare function validateBlockSlug(input: string): true | string; export declare function validateNamespace(input: string): true | string; export declare function validateTextDomain(input: string): true | string; export declare function validatePhpPrefix(input: string): true | string; export declare function assertValidIdentifier(label: string, value: string, validate: (value: string) => true | string): string; export declare function normalizeBlockSlug(input: string): string; /** * Normalize one human-entered block slug and reject values that collapse to an * empty generated slug. * * @param options Normalization context for one block-like name. * @param options.input Raw user input before kebab-case normalization. * @param options.label Human-readable field label used in thrown errors. * @param options.usage Example CLI usage shown when the input is blank. * @returns A non-empty normalized slug. * @throws When the input is blank after trimming. * @throws When normalization removes every character from the original input. */ export declare function resolveNonEmptyNormalizedBlockSlug(options: { input: string; label: string; usage: string; }): string; export declare function resolveValidatedBlockSlug(value: string): string; export declare function resolveValidatedNamespace(value: string): string; export declare function resolveValidatedTextDomain(value: string): string; export declare function resolveValidatedPhpPrefix(value: string): string; /** * Builds the generated WordPress wrapper CSS class for a scaffolded block. * * Returns `wp-block-{namespace}-{slug}` when a non-empty namespace is present, * or `wp-block-{slug}` when the namespace is empty or undefined. When the * normalized namespace equals the normalized slug, appends `-block` so the * generated class avoids repeated namespace segments without colliding with the * default core wrapper classes. Both inputs are normalized and validated with * the same scaffold identifier rules used for block names. */ export declare function buildBlockCssClassName(namespace: string | undefined, slug: string): string; export declare function buildFrontendCssClassName(blockCssClassName: string): string; export declare function resolveScaffoldIdentifiers({ namespace, phpPrefix, slug, textDomain }: { namespace: string; phpPrefix?: string; slug: string; textDomain?: string; }): ResolvedScaffoldIdentifiers;