export interface StreamDerivationRule {
    provides: string;
    requiresAll?: string[];
    requiresOneOf?: string[];
}
export declare function getStreamDerivationRules(): StreamDerivationRule[];
export declare function getStreamDerivationRule(targetType: string): StreamDerivationRule | null;
/**
 * Returns dependency types to add in dependency-closure resolution.
 * For `requiresOneOf`, all candidates are returned as conservative dependencies.
 */
export declare function getDependencyTypesForResolution(targetType: string): string[];
export declare function canDeriveStreamType(targetType: string, hasStreamType: (streamType: string) => boolean): boolean;
