declare namespace Types {
    type One = Record<string, unknown>;
    type OneNullable = One | null;
    type Array = One[];
    type ArrayNullable = Array | null;
}
declare namespace Object {
    type AssertsTemplate<R> = {
        object(value: unknown, message?: string): asserts value is R;
    };
    type ValueIsTemplate<R> = {
        object(value: unknown): value is R;
    };
}
export declare namespace ObjectFunctions {
    namespace Asserts {
        type One = Object.AssertsTemplate<Types.One>;
        type OneNullable = Object.AssertsTemplate<Types.OneNullable>;
        type Array = Object.AssertsTemplate<Types.Array>;
        type ArrayNullable = Object.AssertsTemplate<Types.ArrayNullable>;
    }
    namespace ValueIs {
        type One = Object.ValueIsTemplate<Types.One>;
        type OneNullable = Object.ValueIsTemplate<Types.OneNullable>;
        type Array = Object.ValueIsTemplate<Types.Array>;
        type ArrayNullable = Object.ValueIsTemplate<Types.ArrayNullable>;
    }
}
export {};
