type WithMethodName<K extends string> = `with${Capitalize<K>}`;
type BuilderMethods<T> = {
    [K in keyof T as WithMethodName<K & string>]: (value: T[K]) => Builder<T>;
};
export type Builder<T> = BuilderMethods<T> & {
    build: () => T;
};
export declare function aBuilder<T extends Object>(template?: Partial<T>): Builder<T>;
export {};
//# sourceMappingURL=builder.d.ts.map