/**
 * @since 0.9.2
 * @category Type-level
 */
export declare type BrandOf<A> = A extends Branded<infer _, infer R> ? R : never;
/**
 * @since 0.9.2
 * @category Type-level
 */
export declare type ValueOf<A> = A extends infer E & {
    readonly __brand__: BrandOf<A>;
} ? E : never;
/**
 * @since 0.9.2
 * @category Model
 */
export declare type Branded<E, A> = E & {
    readonly __brand__: A;
};
/**
 * @since 0.9.2
 * @category Constructor
 */
export declare const Branded: <A extends unknown>() => <E extends ValueOf<A>>(e: E) => Branded<E, BrandOf<A>>;
//# sourceMappingURL=Branded.d.ts.map