import type { BaseN } from "@thi.ng/base-n";
import type { IRandom } from "@thi.ng/random";
import type { IKSUID, KSUIDOpts } from "./api.js";
/**
 * Abstract base class for both 32 & 64bit implementations. See {@link KSUID32}
 * and {@link KSUID64}.
 */
export declare abstract class AKSUID implements IKSUID {
    readonly epochSize: number;
    readonly size: number;
    readonly encodedSize: number;
    readonly base: BaseN;
    readonly epoch: number;
    protected tmp: Uint8Array;
    protected rnd?: IRandom;
    protected pad: (x: any) => string;
    protected constructor(epochSize: number, opts: Partial<KSUIDOpts>);
    next(): string;
    nextBinary(buf?: Uint8Array): Uint8Array<ArrayBufferLike>;
    timeOnly(epoch?: number): string;
    abstract timeOnlyBinary(epoch?: number, buf?: Uint8Array): Uint8Array;
    fromEpoch(epoch?: number): string;
    fromEpochBinary(epoch?: number, buf?: Uint8Array): Uint8Array<ArrayBufferLike>;
    format(buf: Uint8Array): string;
    abstract parse(id: string): {
        epoch: number;
        id: Uint8Array;
    };
    protected ensureSize(buf: Uint8Array): Uint8Array<ArrayBufferLike>;
    protected ensureTime(t: number, max?: number): number;
    protected u32(buf: Uint8Array, i?: number): number;
}
//# sourceMappingURL=aksuid.d.ts.map