/**
 * Static provider package metadata declared in package.json under
 * `beignet.provider`.
 *
 * This metadata is for docs and tooling. It must stay side-effect-free and
 * does not change provider setup, ordering, or runtime port merging behavior.
 */
export type ProviderPackagePortMetadata = {
    name: string;
    type: string;
};
export type ProviderPackageRegistrationSeverity = "warning" | "hint";
export type ProviderPackageRegistrationMetadata = {
    required?: boolean;
    severity?: ProviderPackageRegistrationSeverity;
    tokens?: readonly string[];
};
export type ProviderPackageVariantMetadata = {
    name: string;
    displayName?: string;
    env?: readonly string[];
    requiredEnv?: readonly string[];
    requiredEnvAlternatives?: readonly (readonly string[])[];
    requiredTables?: readonly string[];
    registration?: ProviderPackageRegistrationMetadata;
};
export type ProviderPackageMetadata = {
    displayName?: string;
    ports?: readonly string[];
    appPorts?: readonly ProviderPackagePortMetadata[];
    env?: readonly string[];
    requiredEnv?: readonly string[];
    requiredEnvAlternatives?: readonly (readonly string[])[];
    requiredTables?: readonly string[];
    registration?: ProviderPackageRegistrationMetadata;
    variants?: readonly ProviderPackageVariantMetadata[];
    watchers?: readonly string[];
};
export type ProviderPackageMetadataIssue = {
    path: string;
    message: string;
};
export type ProviderPackageMetadataParseResult = {
    success: true;
    metadata: ProviderPackageMetadata;
} | {
    success: false;
    issues: readonly ProviderPackageMetadataIssue[];
};
export declare function parseProviderPackageMetadata(input: unknown): ProviderPackageMetadataParseResult;
//# sourceMappingURL=metadata.d.ts.map