import ts = require("./typesystem");
import nt = require("./nominal-types");
export interface StringToBuiltIn {
    (name: string): nt.ITypeDefinition;
}
export interface PropertyConstructor {
    (name: string): nt.Property;
}
export declare function setPropertyConstructor(p: PropertyConstructor): void;
export interface TypeCustomizer {
    constructProperty(n: string): nt.Property;
    findCustomizer(t: ts.AbstractType): TypeCustomizer;
}
export declare function toNominal(t: ts.AbstractType, callback: StringToBuiltIn, customizer?: TypeCustomizer): nt.ITypeDefinition;
