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