/** @import { LiteralTypes } from './types/literal-types.d.ts' */
/**
 * @param {unknown} value
 * @returns {value is Record<string, unknown>}
 */
export function isObject(value: unknown): value is Record<string, unknown>;
/**
 * @template {string} K
 * @param {unknown} obj
 * @param {K} key
 * @returns {obj is Record<K, unknown>}
 */
export function isObjectWithKey<K extends string>(obj: unknown, key: K): obj is Record<K, unknown>;
/**
 * @template {keyof LiteralTypes} T
 * @param {unknown} value
 * @param {T | T[]} type
 * @returns {value is LiteralTypes[T]}
 */
export function isType<T extends keyof LiteralTypes>(value: unknown, type: T | T[]): value is LiteralTypes[T];
/**
 * @template {string} K
 * @template {keyof LiteralTypes} T
 * @param {unknown} obj
 * @param {K} key
 * @param {T | T[]} type
 * @returns {obj is Record<K, LiteralTypes[T]>}
 */
export function isKeyWithType<K extends string, T extends keyof LiteralTypes>(obj: unknown, key: K, type: T | T[]): obj is Record<K, LiteralTypes[T]>;
/**
 * @template {string} K
 * @template {keyof LiteralTypes} T
 * @param {unknown} obj
 * @param {K} key
 * @param {T | T[]} type
 * @returns {obj is Partial<Record<K, LiteralTypes[T]>>}
 */
export function isOptionalKeyWithType<K extends string, T extends keyof LiteralTypes>(obj: unknown, key: K, type: T | T[]): obj is Partial<Record<K, LiteralTypes[T]>>;
/**
 * @template {string} K
 * @template T
 * @param {unknown} obj
 * @param {K} key
 * @param {T} value
 * @returns {obj is Record<K, T>}
 */
export function isKeyWithValue<K extends string, T>(obj: unknown, key: K, value: T): obj is Record<K, T>;
/**
 * @template {keyof LiteralTypes | Array<keyof LiteralTypes>} T
 * @param {unknown} value
 * @param {T} type
 * @returns {value is Array<LiteralTypes[T extends Array<keyof LiteralTypes> ? T[number] : T]>}
 */
export function isArrayOfLiteralType<T extends keyof LiteralTypes | Array<keyof LiteralTypes>>(value: unknown, type: T): value is Array<LiteralTypes[T extends Array<keyof LiteralTypes> ? T[number] : T]>;
/**
 * @template {keyof LiteralTypes | Array<keyof LiteralTypes>} T
 * @param {unknown} obj
 * @param {T} type
 * @returns {obj is Record<string, LiteralTypes[T extends Array<keyof LiteralTypes> ? T[number] : T]>}
 */
export function isObjectValueType<T extends keyof LiteralTypes | Array<keyof LiteralTypes>>(obj: unknown, type: T): obj is Record<string, LiteralTypes[T extends Array<keyof LiteralTypes> ? T[number] : T]>;
/**
 * @param {unknown} value
 * @returns {value is PropertyKey}
 */
export function isPropertyKey(value: unknown): value is PropertyKey;
import type { LiteralTypes } from './types/literal-types.d.ts';
//# sourceMappingURL=is.d.ts.map