import { ReadonlyRecord } from './ReadonlyRecord.js';
/**
* @category model
* @since 2.0.0
*/
export interface Show {
readonly show: (a: A) => string;
}
/**
* @since 2.10.0
*/
export declare const struct: (shows: { [K in keyof A]: Show; }) => Show<{ readonly [K in keyof A]: A[K]; }>;
/**
* @since 2.10.0
*/
export declare const tuple: >(...shows: { [K in keyof A]: Show; }) => Show>;
/**
* Use [`tuple`](#tuple) instead.
*
* @category zone of death
* @since 2.0.0
* @deprecated
*/
export declare const getTupleShow: >>(...shows: T) => Show<{
[K in keyof T]: T[K] extends Show ? A : never;
}>;
/**
* Use [`struct`](#struct) instead.
*
* @category zone of death
* @since 2.0.0
* @deprecated
*/
export declare const getStructShow: >(shows: {
[K in keyof O]: Show;
}) => Show;
/**
* Use [`Show`](./boolean.ts.html#show) instead.
*
* @category zone of death
* @since 2.0.0
* @deprecated
*/
export declare const showBoolean: Show;
/**
* Use [`Show`](./string.ts.html#show) instead.
*
* @category zone of death
* @since 2.0.0
* @deprecated
*/
export declare const showString: Show;
/**
* Use [`Show`](./number.ts.html#show) instead.
*
* @category zone of death
* @since 2.0.0
* @deprecated
*/
export declare const showNumber: Show;