import * as spec from '@jsii/spec';
/**
 * Convert a type reference to a string
 */
export declare function typeReferenceToString(x: spec.TypeReference): string;
/**
 * Return whether the given type references are equal
 */
export declare function typeReferenceEqual(a: spec.TypeReference, b: spec.TypeReference): boolean;
export type TypeResolver = (typeRef: string | spec.NamedTypeReference) => spec.Type | undefined;
/**
 * Creates a type resolver function for a given context (assembly + dependency closure).
 */
export declare function createTypeResolver(assembly: spec.Assembly, dependencyClosure: readonly spec.Assembly[]): TypeResolver;
/**
 * Resolve a type from a name to the actual type.
 * Uses a given assembly and dependency closure for lookup.
 */
export declare function resolveType(typeRef: string | spec.NamedTypeReference, assembly: spec.Assembly, dependencyClosure: readonly spec.Assembly[]): spec.Type | undefined;
//# sourceMappingURL=type-reference.d.ts.map