import type { If, Not } from './common.js'; import type { Assume, HKT1, HKT2, HKT3 } from './hkt.js'; export type Ary = readonly unknown[]; export type IsAry = T extends readonly unknown[] ? true : false; export interface IsAry$ extends HKT1 { new: (x: Assume) => IsAry; } export type IfAry = If, Then, Else>; export interface IfAry$ extends HKT1 { new: (x: Assume) => IfAry; } export interface IfAry$$ extends HKT2 { new: ( x: Assume, then: Assume, ) => IfAry; } export interface IfAry$$$ extends HKT3 { new: ( x: Assume, then: Assume, else_: Assume, ) => IfAry; } export declare namespace Ary { type OfWritable = T[]; interface OfWritable$ extends HKT1 { new: (x: Assume) => OfWritable; } type OfReadonly = readonly T[]; interface OfReadonly$ extends HKT1 { new: (x: Assume) => OfReadonly; } type IsWritable = AS extends unknown[] ? true : false; interface isWritable$ extends HKT1 { new: (as: Assume) => IsWritable; } type IfWritable = If, Then, Else>; interface IfMutable$ extends HKT1 { new: (as: Assume) => IfWritable; } interface IfMutable$$ extends HKT2 { new: ( as: Assume, then: Assume, ) => IfWritable; } interface IfMutable$$$ extends HKT3 { new: ( as: Assume, then: Assume, else_: Assume, ) => IfWritable; } type IsReadonly = Not>; interface IsReadonly$ extends HKT1 { new: (as: Assume) => IsReadonly; } type IfReadonly = If, Then, Else>; interface IfReadonly$ extends HKT1 { new: (as: Assume) => IfReadonly; } interface IfReadonly$$ extends HKT2 { new: ( as: Assume, then: Assume, ) => IfReadonly; } interface IfReadonly$$$ extends HKT3 { new: ( as: Assume, then: Assume, else_: Assume, ) => IfReadonly; } type Elem = AS[number]; interface Elem$ extends HKT1 { new: (as: Assume) => (typeof as)[number]; } type ElemOrUndefined = Elem | undefined; interface ElemOrUndefined$ extends HKT1 { new: (as: Assume) => ElemOrUndefined; } type Mutate = IfWritable; interface Mutate$ extends HKT1 { new: (as: Assume) => Mutate; } interface Mutate$$ extends HKT2 { new: ( as: Assume, x: Assume, ) => Mutate; } type Mix = IfWritable< AS, Array, ReadonlyArray >; interface Mix$ extends HKT1 { new: (as: Assume) => Mix; } interface Mix$$ extends HKT2 { new: ( as: Assume, x: Assume, ) => Mix; } } //# sourceMappingURL=ary.d.ts.map