import { type FieldContext } from '@vinejs/compiler/types'; /** * Enforce a minimum number of properties on a record field. * * Validates that a record (object) contains at least the specified number of key-value pairs. * * @example * vine.record(vine.string()).minLength(2) */ export declare const minLengthRule: (options: { min: number; }) => import("../../types.ts").Validation<{ min: number; }>; /** * Enforce a maximum number of properties on a record field. * * Validates that a record (object) contains at most the specified number of key-value pairs. * * @example * vine.record(vine.string()).maxLength(10) */ export declare const maxLengthRule: (options: { max: number; }) => import("../../types.ts").Validation<{ max: number; }>; /** * Enforce an exact number of properties on a record field. * * Validates that a record (object) contains exactly the specified number of key-value pairs. * * @example * vine.record(vine.string()).fixedLength(5) */ export declare const fixedLengthRule: (options: { size: number; }) => import("../../types.ts").Validation<{ size: number; }>; /** * Register a custom callback to validate the record's keys. * * Allows implementing custom key validation logic, such as checking key patterns, * enforcing naming conventions, or validating key existence. * * @example * vine.record(vine.string()).validateKeys((keys, field) => { * // Ensure all keys are lowercase * if (!keys.every(key => key === key.toLowerCase())) { * field.report('All keys must be lowercase', 'invalidKeys', field) * } * }) * * @example * // Validate that certain keys exist * vine.record(vine.string()).validateKeys((keys, field) => { * if (!keys.includes('id')) { * field.report('Record must contain an "id" key', 'missingId', field) * } * }) */ export declare const validateKeysRule: (options: (keys: string[], field: FieldContext) => void) => import("../../types.ts").Validation<(keys: string[], field: FieldContext) => void>;