import { TSFlatCollectionOptions } from './flat-collection';
import { TSFlatObjectProperties } from './flat-object';
import { TSFlatPropertyOptions } from './flat-property';
import { Type } from './helpers';
export type FlatObjectRegistration<T> = {
    target: Type<T>;
    options?: TSFlatObjectProperties;
};
export type FlatPropertyRegistration<T> = {
    propertyName: keyof T;
    options?: TSFlatPropertyOptions;
};
export type FlatCollectionRegistration<T> = {
    collectionName: keyof T;
    options: TSFlatCollectionOptions;
};
export type FlatItem<T> = FlatPropertyRegistration<T> | FlatCollectionRegistration<T>;
export declare function registerTSFlat<T>(objectRegistration: FlatObjectRegistration<T>, ...items: FlatItem<T>[]): void;
