import { type AnyObject } from '@augment-vir/common'; import { type TPick } from '@sinclair/typebox'; import { type ShapeInitSchema, type ShapeInitType } from '../shape/shape.js'; /** * Type helper for {@link pickShape} to ensure that the selection parameter doesn't include extra * invalid keys. * * @category Internal */ export type EnforceSelectionKeys> = Readonly<{ [Key in keyof Selection]: Key extends OriginalKeys ? Selection[Key] : never; }>; /** * Creates a shape by picking specific keys off of another object shape. * * @category Shape * @example * * ```ts * import {pickShape, checkValidShape} from 'object-shape-tester'; * * const myShape = pickShape( * { * hi: '', * bye: -1, * }, * { * hi: true, * }, * ); * * checkValidShape( * { * hi: 'some value', * }, * myShape, * ); // `true` * checkValidShape( * { * hi: 'some value', * bye: 100, * }, * myShape, * ); // `false` * ``` */ export declare function pickShape, boolean>>>>(originalShape: OriginalShape, selection: Selection & EnforceSelectionKeys>, NoInfer>): import("../shape/shape.js").Shape, (keyof { [Key in keyof Selection as import("@augment-vir/common").IsNever> extends true ? never : Key]: Key; })[]>>;