import { type ReadonlyRecord } from "./ReadonlyRecord.js";
/**
 * @remarks
 * Added in 1.0.0
 * @remarks
 * Category: Model
 * @remarks
 * Original License: MIT – Copyright (c) 2017-present Giulio Canti
 * @public
 */
export interface Show<A> {
    readonly show: (a: A) => string;
}
/**
 * @remarks
 * Added in 1.0.0
 * @remarks
 * Original License: MIT – Copyright (c) 2017-present Giulio Canti
 * @public
 */
export declare const struct: <A>(shows: { [K in keyof A]: Show<A[K]>; }) => Show<{ readonly [K_1 in keyof A]: A[K_1]; }>;
/**
 * @remarks
 * Added in 1.0.0
 * @remarks
 * Original License: MIT – Copyright (c) 2017-present Giulio Canti
 * @public
 */
export declare const tuple: <A extends readonly unknown[]>(...shows: { [K in keyof A]: Show<A[K]>; }) => Show<Readonly<A>>;
/**
 * Use [`tuple`](#tuple) instead.
 *
 * @remarks
 * Added in 1.0.0
 * @remarks
 * Original License: MIT – Copyright (c) 2017-present Giulio Canti
 * @deprecated Zone of Death
 * @public
 */
export declare const getTupleShow: <T extends ReadonlyArray<Show<any>>>(...shows: T) => Show<{
    [K in keyof T]: T[K] extends Show<infer A> ? A : never;
}>;
/**
 * Use [`struct`](#struct) instead.
 *
 * @remarks
 * Added in 1.0.0
 * @remarks
 * Original License: MIT – Copyright (c) 2017-present Giulio Canti
 * @deprecated Zone of Death
 * @public
 */
export declare const getStructShow: <O extends ReadonlyRecord<string, any>>(shows: {
    [K in keyof O]: Show<O[K]>;
}) => Show<O>;
/**
 * Use [`Show`](./boolean.ts.html#show) instead.
 *
 * @remarks
 * Added in 1.0.0
 * @remarks
 * Original License: MIT – Copyright (c) 2017-present Giulio Canti
 * @deprecated Zone of Death
 * @public
 */
export declare const showBoolean: Show<boolean>;
/**
 * Use [`Show`](./string.ts.html#show) instead.
 *
 * @remarks
 * Added in 1.0.0
 * @remarks
 * Original License: MIT – Copyright (c) 2017-present Giulio Canti
 * @deprecated Zone of Death
 * @public
 */
export declare const showString: Show<string>;
/**
 * Use [`Show`](./number.ts.html#show) instead.
 *
 * @remarks
 * Added in 1.0.0
 * @remarks
 * Original License: MIT – Copyright (c) 2017-present Giulio Canti
 * @deprecated Zone of Death
 * @public
 */
export declare const showNumber: Show<number>;
//# sourceMappingURL=Show.d.ts.map