import { type Schema } from 'schemata-ts/Schema';
/**
* Represents a typeclass and data-type that narrows an unknown value to a specific type
*
* @since 2.0.0
* @category Model
*/
export interface Guard {
readonly is: (u: unknown) => u is A;
}
/**
* Constructs a guard from predicate function
*
* @since 2.0.0
* @category Constructors
*/
export declare const fromPredicate: (predicate: (u: unknown) => u is A) => Guard;
export {
/**
* Interprets a schema as a guard for the `Output` type
*
* @since 2.0.0
* @category Interpreters
*/
deriveGuard, } from 'schemata-ts/derivations/guard-schemable';
/**
* Interprets a schema as a guard for the `Input` type
*
* @since 2.1.0
* @category Interpreters
*/
export declare const deriveInputGuard: (schema: Schema) => Guard;
/**
* @since 2.0.0
* @category URI
*/
export declare const URI = "schemata-ts/Guard";
/**
* @since 2.0.0
* @category URI
*/
export type URI = typeof URI;
declare module 'fp-ts/lib/HKT' {
interface URItoKind {
readonly [URI]: Guard;
}
}
//# sourceMappingURL=Guard.d.ts.map