export declare enum Operation {
    Add = "Add",
    Subtract = "Subtract",
    Multiply = "Multiply",
    Divide = "Divide",
    X = "X",
    Y = "Y",
    Power = "Power",
    Log = "Log",
    Min = "Min",
    Max = "Max",
    MaxZeroX = "MaxZeroX",
    MinZeroX = "MinZeroX",
    MaxZeroY = "MaxZeroY",
    MinZeroY = "MinZeroY",
    Modulo = "Modulo",
    Bounce = "Bounce",
    And = "And",
    Or = "Or",
    Xor = "Xor",
    ShiftLeft = "ShiftLeft",
    ShiftRight = "ShiftRight",
    LCM = "LCM",
    GCD = "GCD",
    Equal = "Equal",
    NotEqual = "NotEqual",
    LessThan = "LessThan",
    LessThanOrEqual = "LessThanOrEqual",
    GreaterThan = "GreaterThan",
    GreaterThanOrEqual = "GreaterThanOrEqual",
    Binomial = "Binomial",
    ExpandBits = "ExpandBits",
    ExpandBitsFill = "ExpandBitsFill",
    CantorIntervalBinaryNumber = "CantorIntervalBinaryNumber",
    PermuteBits = "PermuteBits",
    HardThreshold = "HardThreshold"
}
export declare enum Combiner {
    Product = "Product",
    NegativeProduct = "NegativeProduct",
    Convolution = "Convolution",
    Triangular = "Triangular",
    Recycle = "Recycle",
    LCM = "LCM",
    Apply = "Apply",
    Reduce = "Reduce",
    MixedRadix = "Mixed Radix",
    Bits = "Bits",
    Trits = "Trits"
}
export declare class Sequence {
    private items;
    constructor(...items: number[]);
    toString(): string;
    add(item: number): void;
    size(): number;
    get(index: number): number | undefined;
    set(index: number, value: number): void;
    toArray(): number[];
    signs(): Sequence;
    isNatural(): boolean;
    difference(): Sequence;
    cyclicalDifference(): Sequence;
    antidifference(k: number): Sequence;
    cyclicalAntidifference(k: number): Sequence;
    getSymmetries(): number[];
    static parse(s: string): Sequence;
    getMean(): number;
    sum(): number;
    getMin(): number;
    getMax(): number;
    rotate(n: number): Sequence;
    static fromArray(arr: number[]): Sequence;
    frequencyMap(): Map<number, number>;
    static genRnd(length: number, amp: number, sum: number, maxAmp: number, exclude0: boolean): Sequence;
    private static calculateIntervalVector;
    static calcIntervalVector(input: boolean[]): Sequence;
    static calcIntervalVectorBitSet(input: boolean[], n: number): Sequence;
    static calcIntervalVectorDistinct(sequence: Sequence): Map<number, Sequence>;
    static calcIntervalVectorInts(input: number[]): Map<number, Sequence>;
    static combine(combiner: Combiner, operation: Operation, x: Sequence, y: Sequence): Sequence;
}
