@gmod/cram
Version:
read CRAM files with pure Javascript
79 lines (78 loc) • 1.8 kB
TypeScript
export interface NullEncoding {
codecId: 0;
parametersBytes: number;
parameters: Record<string, never>;
}
export interface ExternalCramEncoding {
codecId: 1;
parametersBytes: number;
parameters: {
blockContentId: number;
};
}
export interface GolombEncoding {
codecId: 2;
parametersBytes: number;
parameters: {
offset: number;
M: number;
};
}
export interface HuffmanEncoding {
codecId: 3;
parametersBytes: number;
parameters: {
numCodes: number;
symbols: number[];
numLengths: number;
bitLengths: number[];
};
}
export interface ByteArrayLengthEncoding {
codecId: 4;
parametersBytes: number;
parameters: {
lengthsEncoding: CramEncoding;
valuesEncoding: CramEncoding;
};
}
export interface ByteArrayStopCramEncoding {
codecId: 5;
parametersBytes: number;
parameters: {
stopByte: number;
blockContentId: number;
};
}
export interface BetaEncoding {
codecId: 6;
parametersBytes: number;
parameters: {
offset: number;
length: number;
};
}
export interface SubexpEncoding {
codecId: 7;
parametersBytes: number;
parameters: {
offset: number;
K: number;
};
}
export interface GolombRiceEncoding {
codecId: 8;
parametersBytes: number;
parameters: {
offset: number;
log2m: number;
};
}
export interface GammaEncoding {
codecId: 9;
parametersBytes: number;
parameters: {
offset: number;
};
}
export type CramEncoding = NullEncoding | ExternalCramEncoding | GolombEncoding | HuffmanEncoding | ByteArrayLengthEncoding | ByteArrayStopCramEncoding | BetaEncoding | SubexpEncoding | GolombRiceEncoding | GammaEncoding;