import { DeepPartial } from './deepPartial';
export type GeneratorFnOptions<T, I, C> = {
    sequence: number;
    afterBuild: (fn: HookFn<T>) => any;
    afterCreate: (fn: AfterCreateFn<C>) => any;
    onCreate: (fn: OnCreateFn<T, C>) => any;
    params: DeepPartial<T>;
    associations: Partial<T>;
    transientParams: Partial<I>;
};
export type GeneratorFn<T, I, C> = (opts: GeneratorFnOptions<T, I, C>) => T;
export type HookFn<T> = (object: T) => any;
export type OnCreateFn<T, C = T> = (object: T) => C | Promise<C>;
export type AfterCreateFn<C> = (object: C) => C | Promise<C>;
export type BuildOptions<T, I> = {
    associations?: Partial<T>;
    transient?: Partial<I>;
};
