import { Schema, SchemaBase } from "../schema.js";
/**
 * Checks that a value is an object where all keys match the provided key schema, and all
 * values match the provided value schema. Equivalent to `Record<K, T>` in TypeScript.
 * @remarks
 * If `$K` is a finite type, then the keys of the value being validated must be
 * exhaustive. For example, `{@link $boolean}` has two valid values: `true` and `false`.
 * A valid `$Record($boolean, $T)` must include a key for both `true` and `false`, such as
 * `{ [true]: 1, [false]: 2 }`. This is actually not the same as `Record<boolean, T>` in
 * TypeScript, which does not require exhaustive keys.
 */
export declare function $Record<K extends string | number | symbol, T>($K: SchemaBase<K>, $V: SchemaBase<T>): Schema<Record<K, T>>;
