export declare function ob<Ob extends object>(o: Ob): {
    map: <Value>(transform: ObTransform<Ob, Value>) => { [P in keyof Ob]: Value; };
    filter: (predicate: ObPredicate<Ob>) => { [P in keyof Ob]?: Ob[keyof Ob] | undefined; };
};
export declare namespace ob {
    var pipe: Readonly<{
        map: <O extends {}, Value>(transform: (value: O[keyof O], key: keyof O) => Value) => (o: O) => { [P in keyof O]: Value; };
        filter: <O extends {}>(transform: (value: O[keyof O], key: keyof O) => boolean) => (o: O) => {
            [key: string]: O[keyof O];
        };
    }>;
}
export type ObTransform<Ob extends object, Value> = ((value: Ob[keyof Ob], key: keyof Ob) => Value);
export type ObPredicate<Ob extends object> = ((value: Ob[keyof Ob], key: keyof Ob) => boolean);
