import { type AssetSpecCapability, type AssetSpecContract, type AssetSpecValidationKind } from '@playdrop/types';
export declare function resolveCustomAssetRoleContentType(filePath: string, roleContract?: Pick<AssetSpecContract['roles'][number], 'contentTypes'> | null): string;
export type AssetSpecSupportDeclaration = {
    assetSpec: string;
    versionRange: string;
    capabilities: AssetSpecCapability[];
};
export type LoadedAssetSpecContract = {
    contract: AssetSpecContract;
    validationKind: AssetSpecValidationKind;
    contractPath: string;
};
export declare function normalizeAssetSpecSupportEntries(raw: unknown, errors: string[], context: string): AssetSpecSupportDeclaration[];
export declare function loadAndValidateAssetSpecContract(catalogueDir: string, relativeContractPath: string, errors: string[], context: string): LoadedAssetSpecContract | null;
export declare function validateCustomAssetFilesAgainstContract(contract: AssetSpecContract, filePaths: Record<string, string>, errors: string[], context: string): void;
export declare function normalizeAssetSpecVersionRef(raw: unknown, errors: string[], context: string): string | undefined;
export declare function validateAssetSpecName(name: string, errors: string[], context: string): boolean;
