@onesy/huffman-code
Version:
91 lines (90 loc) • 3.54 kB
TypeScript
import { TMethod } from '@onesy/models';
export declare type TArrayVariant = 'preorder';
interface IOnesyNode {
value: number;
word?: any;
path?: string;
left: OnesyNode;
right: OnesyNode;
[p: string]: any;
}
export declare class OnesyHuffmanCodeResponse {
value: any;
values?: Record<string, string>;
values_encoded?: any;
probabilities?: Record<string, number>;
efficiency?: number;
redundency?: number;
entropy?: number;
original_byte_size?: number;
values_byte_size?: number;
value_byte_size?: number;
encoded_byte_size?: number;
compression_ratio?: number;
compression_percentage?: number;
positive?: boolean;
average_code_word_length?: number;
performance_milliseconds?: number;
performance?: string;
constructor(value?: any, values?: Record<string, string>, values_encoded?: any, probabilities?: Record<string, number>, efficiency?: number, redundency?: number, entropy?: number, original_byte_size?: number, values_byte_size?: number, value_byte_size?: number, encoded_byte_size?: number, compression_ratio?: number, compression_percentage?: number, positive?: boolean, average_code_word_length?: number, performance_milliseconds?: number, performance?: string);
}
export declare class OnesyNode implements IOnesyNode {
value: number;
word?: any;
left: OnesyNode;
right: OnesyNode;
[p: string]: any;
constructor(value?: number, word?: any);
get leaf(): boolean;
get maxDepth(): number;
}
interface IOnesyHuffmanTree {
root: OnesyNode;
}
export declare class OnesyHuffmanTree implements IOnesyHuffmanTree {
root: OnesyNode;
static make(value: Array<any>): OnesyHuffmanTree;
get array(): Array<any>;
isRoot(value: OnesyNode): boolean;
preorder(value: OnesyNode, method: TMethod): void;
make(value_: Array<any>): OnesyHuffmanTree;
}
export declare type TEncoding = 'binary' | 'hexadecimal';
export interface IOptions {
encode_values?: boolean;
base64?: boolean;
}
export declare const optionsDefault: IOptions;
declare class OnesyHuffmanCode {
value?: string;
options: IOptions;
huffmanTree: OnesyHuffmanTree;
probabilities: Record<string, number>;
values: Record<string, string>;
response: OnesyHuffmanCodeResponse;
private startTime;
static get OnesyHuffmanCodeResponse(): typeof OnesyHuffmanCodeResponse;
static get OnesyNode(): typeof OnesyNode;
static get OnesyHuffmanTree(): typeof OnesyHuffmanTree;
static encodeValue(value: string): string;
static decodeValue(value_: string): string;
static encodeValues(values: Record<string, string>, encodeValues?: boolean): string | object;
static decodeValues(value: string): object;
static getValues(onesyHuffmanTree: OnesyHuffmanTree): Record<string, string>;
static decode(value: string, values: Record<string, string>): OnesyHuffmanCodeResponse;
static encodeBase64(value: string): string;
static decodeBase64(value: string): string;
get encoded(): OnesyHuffmanCodeResponse;
get entropy(): number;
get averageCodeWordLength(): number;
get redundency(): number;
get efficiency(): number;
constructor(value?: string, options?: IOptions);
private init;
encode(): OnesyHuffmanCodeResponse;
decode(value_: string): OnesyHuffmanCodeResponse;
getProbabilities(): Record<string, number>;
normalizeProbabilities(): Record<string, number>;
makeHuffmanTree(): OnesyHuffmanTree;
}
export default OnesyHuffmanCode;