import { DynamicBuffer } from './dynamic-buffer.ts';
export type SyncCompressionPhase = (data: Buffer | DynamicBuffer) => Buffer;
export type CompressionOperation = (data: Buffer) => Buffer;
export interface CompressionAlgorithmSpecification {
    compressSync: SyncCompressionPhase;
    decompressSync: SyncCompressionPhase;
    bitmask: number;
    available?: boolean;
}
export declare const CompressionAlgorithms: {
    readonly NONE: "none";
    readonly GZIP: "gzip";
    readonly SNAPPY: "snappy";
    readonly LZ4: "lz4";
    readonly ZSTD: "zstd";
};
export declare const allowedCompressionsAlgorithms: CompressionAlgorithmValue[];
export type CompressionAlgorithm = keyof typeof CompressionAlgorithms;
export type CompressionAlgorithmValue = (typeof CompressionAlgorithms)[keyof typeof CompressionAlgorithms];
export declare const compressionsAlgorithms: {
    readonly none: {
        readonly compressSync: (data: Buffer | DynamicBuffer) => Buffer;
        readonly decompressSync: (data: Buffer | DynamicBuffer) => Buffer;
        readonly bitmask: 0;
        readonly available: true;
    };
    readonly gzip: {
        readonly compressSync: (data: Buffer | DynamicBuffer) => Buffer;
        readonly decompressSync: (data: Buffer | DynamicBuffer) => Buffer;
        readonly bitmask: 1;
        readonly available: true;
    };
    readonly snappy: {
        readonly compressSync: (data: Buffer | DynamicBuffer) => Buffer;
        readonly decompressSync: (data: Buffer | DynamicBuffer) => Buffer;
        readonly bitmask: 2;
        readonly available: true;
    };
    readonly lz4: {
        readonly compressSync: (data: Buffer | DynamicBuffer) => Buffer;
        readonly decompressSync: (data: Buffer | DynamicBuffer) => Buffer;
        readonly bitmask: 3;
        readonly available: true;
    };
    readonly zstd: {
        readonly compressSync: (data: Buffer | DynamicBuffer) => Buffer;
        readonly decompressSync: (data: Buffer | DynamicBuffer) => Buffer;
        readonly bitmask: 4;
        readonly available: boolean;
    };
};
export declare const compressionsAlgorithmsByBitmask: {
    [k: string]: {
        readonly compressSync: (data: Buffer | DynamicBuffer) => Buffer;
        readonly decompressSync: (data: Buffer | DynamicBuffer) => Buffer;
        readonly bitmask: 0;
        readonly available: true;
    } | {
        readonly compressSync: (data: Buffer | DynamicBuffer) => Buffer;
        readonly decompressSync: (data: Buffer | DynamicBuffer) => Buffer;
        readonly bitmask: 1;
        readonly available: true;
    } | {
        readonly compressSync: (data: Buffer | DynamicBuffer) => Buffer;
        readonly decompressSync: (data: Buffer | DynamicBuffer) => Buffer;
        readonly bitmask: 2;
        readonly available: true;
    } | {
        readonly compressSync: (data: Buffer | DynamicBuffer) => Buffer;
        readonly decompressSync: (data: Buffer | DynamicBuffer) => Buffer;
        readonly bitmask: 3;
        readonly available: true;
    } | {
        readonly compressSync: (data: Buffer | DynamicBuffer) => Buffer;
        readonly decompressSync: (data: Buffer | DynamicBuffer) => Buffer;
        readonly bitmask: 4;
        readonly available: boolean;
    };
};
