import { zTag } from '../internal/zTag.js'; type PropExtension
= = = {
/**
* Returns `true` if the value of the property satisfies the predicate.
* @param pred The predicate to satisfy.
*
* @example
* ```typescript
* const objs = [{ a: 1, b: 2 }, { a: 3, b: 4 }];
* objs.filter(prop('a').satisfies((value) => value === 1)); // => [{ a: 1, b: 2 }]
* ```
*/
satisfies: ;
/**
* Returns `true` if the value of the property is equal to the specified value (using `===`).
*
* It is the same as `eq` but the value is not checked at compile time.
* The `W` postfix stands for "wide".
* @param value The value to compare to.
*
* @example
* ```typescript
* const objs = [{ a: 1, b: 2 }, { a: 3, b: 4 }];
* objs.filter(prop('a').eqW(1)); // => [{ a: 1, b: 2 }]
* ```
*/
eqW: PropExtensionW ;
/**
* Returns `true` if the value of the property is not equal to the specified value (using `!==`).
* @param value The value to compare to.
*
* @example
* ```typescript
* const objs = [{ a: 1, b: 2 }, { a: 3, b: 4 }];
* objs.filter(prop('a').notEq(1)); // => [{ a: 3, b: 4 }]
* ```
*/
notEq: PropExtension ;
/**
* Returns `true` if the value of the property is not equal to the specified value (using `!==`).
*
* It is the same as `notEq` but the value is not checked at compile time.
* The `W` postfix stands for "wide".
* @param value The value to compare to.
*
* @example
* ```typescript
* const objs = [{ a: 1, b: 2 }, { a: 3, b: 4 }];
* objs.filter(prop('a').notEqW(1)); // => [{ a: 3, b: 4 }]
* ```
*/
notEqW: PropExtensionW ;
/**
* Returns `true` if the value of the property is loosely equal to the specified value (using `==`).
* @param value The value to compare to.
*
* @example
* ```typescript
* const objs = [{ a: 1, b: 2 }, { a: '1', b: 4 }];
* objs.filter(prop('a').looselyEq(1)); // => [{ a: 1, b: 2 }, { a: '1', b: 4 }]
* ```
*/
looselyEq: PropExtension ;
/**
* Returns `true` if the value of the property is loosely equal to the specified value (using `==`).
*
* It is the same as `looselyEq` but the value is not checked at compile time.
* The `W` postfix stands for "wide".
* @param value The value to compare to.
*
* @example
* ```typescript
* const objs = [{ a: 1, b: 2 }, { a: '1', b: 4 }];
* objs.filter(prop('a').looselyEqW(1)); // => [{ a: 1, b: 2 }, { a: '1', b: 4 }]
* ```
*/
looselyEqW: PropExtensionW ;
/**
* Returns `true` if the value of the property is not loosely equal to the specified value (using `!=`).
* @param value The value to compare to.
*
* @example
* ```typescript
* const objs = [{ a: 1, b: 2 }, { a: '1', b: 4 }];
* objs.filter(prop('a').notLooselyEq(1)); // => []
* ```
*/
notLooselyEq: PropExtension ;
/**
* Returns `true` if the value of the property is not loosely equal to the specified value (using `!=`).
*
* It is the same as `notLooselyEq` but the value is not checked at compile time.
* The `W` postfix stands for "wide".
* @param value The value to compare to.
*
* @example
* ```typescript
* const objs = [{ a: 1, b: 2 }, { a: '1', b: 4 }];
* objs.filter(prop('a').notLooselyEqW(1)); // => []
* ```
*/
notLooselyEqW: PropExtensionW ;
/**
* Returns `true` if the value of the property is equal to the specified value (using `equals`).
* @param value The value to compare to.
*
* @example
* ```typescript
* const objs = [{ a: { b: 1 }, c: 2 }, { a: { b: 3 }, c: 4 }];
* objs.filter(prop('a').equals({ b: 1 })); // => [{ a: { b: 1 }, c: 2 }]
* ```
*
* @see {@link equals}
*/
equals: PropExtension ;
/**
* Returns `true` if the value of the property is equal to the specified value (using `equals`).
*
* It is the same as `equals` but the value is not checked at compile time.
* The `W` postfix stands for "wide".
* @param value The value to compare to.
*
* @example
* ```typescript
* const objs = [{ a: { b: 1 }, c: 2 }, { a: { b: 3 }, c: 4 }];
* objs.filter(prop('a').equalsW({ b: 1 })); // => [{ a: { b: 1 }, c: 2 }]
* ```
*
* @see {@link equals}
*/
equalsW: PropExtensionW ;
/**
* Returns `true` if the value of the property is not equal to the specified value (using `equals`).
* @param value The value to compare to.
*
* @example
* ```typescript
* const objs = [{ a: { b: 1 }, c: 2 }, { a: { b: 3 }, c: 4 }];
* objs.filter(prop('a').notEquals({ b: 1 })); // => [{ a: { b: 3 }, c: 4 }]
* ```
*
* @see {@link equals}
*/
notEquals: PropExtension ;
/**
* Returns `true` if the value of the property is not equal to the specified value (using `equals`).
*
* It is the same as `notEquals` but the value is not checked at compile time.
* The `W` postfix stands for "wide".
* @param value The value to compare to.
*
* @example
* ```typescript
* const objs = [{ a: { b: 1 }, c: 2 }, { a: { b: 3 }, c: 4 }];
* objs.filter(prop('a').notEqualsW({ b: 1 })); // => [{ a: { b: 3 }, c: 4 }]
* ```
*
* @see {@link equals}
*/
notEqualsW: PropExtensionW ;
/**
* Returns `true` if the value of the property is the same as the specified value (using `is`).
* @param value The value to compare to.
*
* @example
* ```typescript
* const objs = [{ a: 0, c: 2 }, { a: -0, c: 4 }];
* objs.filter(prop('a').is(-0)); // => [{ a: -0, c: 4 }]
* ```
*
* @see {@link is}
*/
is: PropExtension ;
/**
* Returns `true` if the value of the property is the same as the specified value (using `is`).
*
* It is the same as `is` but the value is not checked at compile time.
* The `W` postfix stands for "wide".
* @param value The value to compare to.
*
* @example
* ```typescript
* const objs = [{ a: 0, c: 2 }, { a: -0, c: 4 }];
* objs.filter(prop('a').isW(-0)); // => [{ a: -0, c: 4 }]
* ```
*
* @see {@link is}
*/
isW: PropExtensionW ;
/**
* Returns `true` if the value of the property is not the same as the specified value (using `is`).
* @param value The value to compare to.
*
* @example
* ```typescript
* const objs = [{ a: 0, c: 2 }, { a: -0, c: 4 }];
* objs.filter(prop('a').isNot(-0)); // => [{ a: 0, c: 2 }]
* ```
*
* @see {@link is}
*/
isNot: PropExtension ;
/**
* Returns `true` if the value of the property is not the same as the specified value (using `is`).
*
* It is the same as `isNot` but the value is not checked at compile time.
* The `W` postfix stands for "wide".
* @param value The value to compare to.
*
* @example
* ```typescript
* const objs = [{ a: 0, c: 2 }, { a: -0, c: 4 }];
* objs.filter(prop('a').isNotW(-0)); // => [{ a: 0, c: 2 }]
* ```
*
* @see {@link is}
*/
isNotW: PropExtensionW ;
/**
* Returns `true` if the value of the property is greater than the specified value (using `>`).
* @param value The value to compare to.
*
* @example
* ```typescript
* const objs = [{ a: 1, b: 2 }, { a: 3, b: 4 }];
* objs.filter(prop('a').gt(1)); // => [{ a: 3, b: 4 }]
* ```
*/
gt: PropExtension ;
/**
* Returns `true` if the value of the property is greater than the specified value (using `>`).
*
* It is the same as `gt` but the value is not checked at compile time.
* The `W` postfix stands for "wide".
* @param value The value to compare to.
*
* @example
* ```typescript
* const objs = [{ a: 1, b: 2 }, { a: 3, b: 4 }];
* objs.filter(prop('a').gtW(1)); // => [{ a: 3, b: 4 }]
* ```
*/
gtW: PropExtensionW ;
/**
* Returns `true` if the value of the property is greater than or equal to the specified value (using `>=`).
* @param value The value to compare to.
*
* @example
* ```typescript
* const objs = [{ a: 1, b: 2 }, { a: 3, b: 4 }];
* objs.filter(prop('a').gte(1)); // => [{ a: 1, b: 2 }, { a: 3, b: 4 }]
* ```
*/
gte: PropExtension ;
/**
* Returns `true` if the value of the property is greater than or equal to the specified value (using `>=`).
*
* It is the same as `gte` but the value is not checked at compile time.
* The `W` postfix stands for "wide".
* @param value The value to compare to.
*
* @example
* ```typescript
* const objs = [{ a: 1, b: 2 }, { a: 3, b: 4 }];
* objs.filter(prop('a').gteW(1)); // => [{ a: 1, b: 2 }, { a: 3, b: 4 }]
* ```
*/
gteW: PropExtensionW ;
/**
* Returns `true` if the value of the property is less than the specified value (using `<`).
* @param value The value to compare to.
*
* @example
* ```typescript
* const objs = [{ a: 1, b: 2 }, { a: 3, b: 4 }];
* objs.filter(prop('a').lt(3)); // => [{ a: 1, b: 2 }]
* ```
*/
lt: PropExtension ;
/**
* Returns `true` if the value of the property is less than the specified value (using `<`).
*
* It is the same as `lt` but the value is not checked at compile time.
* The `W` postfix stands for "wide".
* @param value The value to compare to.
*
* @example
* ```typescript
* const objs = [{ a: 1, b: 2 }, { a: 3, b: 4 }];
* objs.filter(prop('a').ltW(3)); // => [{ a: 1, b: 2 }]
* ```
*/
ltW: PropExtensionW ;
/**
* Returns `true` if the value of the property is less than or equal to the specified value (using `<=`).
* @param value The value to compare to.
*
* @example
* ```typescript
* const objs = [{ a: 1, b: 2 }, { a: 3, b: 4 }];
* objs.filter(prop('a').lte(3)); // => [{ a: 1, b: 2 }, { a: 3, b: 4 }]
* ```
*/
lte: PropExtension ;
/**
* Returns `true` if the value of the property is less than or equal to the specified value (using `<=`).
*
* It is the same as `lte` but the value is not checked at compile time.
* The `W` postfix stands for "wide".
* @param value The value to compare to.
*
* @example
* ```typescript
* const objs = [{ a: 1, b: 2 }, { a: 3, b: 4 }];
* objs.filter(prop('a').lteW(3)); // => [{ a: 1, b: 2 }, { a: 3, b: 4 }]
* ```
*/
lteW: PropExtensionW ;
};
/**
* Returns a function that when given an object returns the value of the specified property.
*
* The function also has a number of extensions that can be used to compare the value of the property.
* @param prop The property to get.
*
* @example
* ```typescript
* const obj = { a: 1, b: 2 };
* const objs = [{ a: 1, b: 2 }, { a: 3, b: 4 }];
* objs.map(prop('a')); // => [1, 3]
* prop & {
[zTag]: 'Prop';
};
/**
* Returns a function that when given an object returns the value of the specified property.
*
* The function also has a number of extensions that can be used to compare the value of the property.
* @param prop The property to get.
*
* @example
* ```typescript
* const obj = { a: 1, b: 2 };
* const objs = [{ a: 1, b: 2 }, { a: 3, b: 4 }];
* objs.map(prop('a')); // => [1, 3]
* prop