export declare const Type: FunctionConstructor;
export declare function isType(v: any): v is Type<any>;
export interface Type<T> extends Function {
    new (...args: any[]): T;
}

export declare type IdentityType<T> = T | symbol;
export declare type PropertyKeyType = IdentityType<string>;
export declare type MetadataKeyType = IdentityType<string>;

export enum PrimitiveType {
  ANY = 'any',
  STRING = 'string',
  NUMBER = 'number',
  BOOLEAN = 'boolean',
}
