import type { BaseN } from "@thi.ng/base-n" ; import type { IRandom } from "@thi.ng/random" ; export interface IKSUID { /**
     * Byte size of a single ID, based on the KSUID's configuration. The default
     * config will result in 20-byte IDs (27 chars base62 encoded).
     */ readonly size : number ; readonly encodedSize : number ; readonly base : BaseN ; readonly epoch : number ; readonly epochSize : number ; /**
     * Returns a new baseN encoded ID string.
     */ next ( ) : string ; /**
     * Returns a new ID as byte array.
     */ nextBinary ( ) : Uint8Array ; param epoch timeOnly ( epoch ? ) : string ; /**
     * Binary version of  KSUI . timeOnly , but returns byte array. The
     * first `epochSize` bytes will contain the timestamp.
     *
     *  param epoch timeOnlyBinary ( epoch ? ) : Uint8Array ; /**
     * Returns baseN encoded version of given binary ID (generated via
     * `.nextBinary()`).
     */ format ( buf ) : string ; remarks param id parse ( id ) : { epoch : number ; id : Uint8Array ; } ; } export interface KSUIDOpts { /**
     *  {@link @this.ng/base-n#BaseN} instance for string encoding the generated
     * binary IDs.
     *
     *  defaultValue base : BaseN ; defaultValue rnd : IRandom ; defaultValue bytes : number ; remarks defaultValue epoch : number ; }