import { type IsEqual } from '@augment-vir/common'; import { type Shape, type ShapeInitType } from '../shape/shape.js'; /** * Kind for {@link recordShape}. * * @category Internal */ export declare const recordShapeKind: "recordShape"; /** * Creates a shape that requires an object with certain keys and values. * * @category Shape * @example * * ```ts * import {recordShape, checkValidShape} from 'object-shape-tester'; * * const myShape = recordShape({ * keys: '', * values: -1, * }); * * checkValidShape({a: 0}, myShape); // `true` * checkValidShape({a: '0'}, myShape); // `false` * ``` */ export declare function recordShape({ keys, values, partial, additionalProperties, }: { keys: K; values: V; /** * If set to `true`, all keys are optional. * * @default false */ partial?: IsPartial; /** * Set to `true` to allow additional properties in addition to the required properties. * * @default false */ additionalProperties?: boolean; }): Shape extends true ? Partial, PropertyKey>, ShapeInitType>> : Record, PropertyKey>, ShapeInitType>>>; /** * Converts a keys requirement to a {@link Shape}. * * @category Internal */ export declare function defineKeysShape(keys: unknown): Shape; /** * Extracts all finite keys, if any, that match the given keys {@link Shape}. * * @category Internal */ export declare function extractFiniteKeys(keys: Shape): unknown[];