export declare const none: unique symbol;
/**
 * Returns the value in `obj` at `path`. If the given path does not exist,
 * the symbol `none` is returned.
 *
 * @example
 * ```
 * // -> 'something'
 * select(
 *   { a: { deeply: [{ nested: { object: 'something' } }] } },
 *   'a', 'deeply', 0, 'nested', 'object'
 * )
 * ```
 */
declare const select: <T, P extends AnyNarrow[]>(obj: T, ...path: P) => PickPath<T, P>;
export default select;
declare type AnyNarrow = string | number | symbol | boolean | undefined | null | Record<string | number | symbol, unknown>;
declare type PickPath<T, P extends unknown[]> = P extends [] ? T : T extends Map<infer K, infer V> ? (P[0] extends K ? V | typeof none : typeof none) : P[0] extends keyof T ? PickPath<T[P[0]], P extends [unknown, ...infer R] ? R : []> : unknown extends T ? unknown : typeof none;
