/** * Copyright (c) 2017 mol* contributors, licensed under MIT, See LICENSE file for more info. * * @author David Sehnal * @author Alexander Rose */ import { BinaryEncodingProvider } from './cif/encoder/binary.js'; import * as _Encoder from './cif/encoder.js'; import { ArrayEncoding, ArrayEncoder } from '../common/binary-cif.js'; import { CifFrame } from '../reader/cif.js'; export declare namespace CifWriter { export import Encoder = _Encoder.Encoder; export import Category = _Encoder.Category; export import Field = _Encoder.Field; export import Encoding = ArrayEncoding; interface EncoderParams { binary?: boolean; encoderName?: string; binaryEncodingPovider?: BinaryEncodingProvider; binaryAutoClassifyEncoding?: boolean; } function createEncoder(params?: EncoderParams): Encoder; function fields(): Field.Builder; const Encodings: { deltaRLE: ArrayEncoder; fixedPoint2: ArrayEncoder; fixedPoint3: ArrayEncoder; }; function categoryInstance(fields: Field[], source: Category.DataSource): Category.Instance; function createEncodingProviderFromCifFrame(frame: CifFrame): BinaryEncodingProvider; function createEncodingProviderFromJsonConfig(hints: EncodingStrategyHint[]): BinaryEncodingProvider; } /** * Defines the information needed to encode certain fields: category and column name as well as encoding tag, precision is optional and identifies float columns. */ export interface EncodingStrategyHint { categoryName: string; columnName: string; encoding: EncodingType; /** * number of decimal places to keep - must be specified to float columns */ precision?: number; } type EncodingType = 'pack' | 'rle' | 'delta' | 'delta-rle'; export {};