import { Hint } from './Hint.js';
import { Type, TypeTarget } from './Type.js';
import { RecordShape } from './shape/RecordShape.js';
export interface Schema<Definitions = {}> extends Record<string, Type> {
}
export declare namespace Schema {
    type Targets = Map<TypeTarget, string>;
    function shapes(schema: Schema): Record<string, RecordShape>;
    function hint(schema: Schema): Hint.Union;
    function targets(schema: Schema): Targets;
    function typeNames(schema: Schema): Map<Type, string>;
}
export declare function schema<T extends Schema>(types: T): T;
