/**
 * Copyright (c) 2017-2025 mol* contributors, licensed under MIT, See LICENSE file for more info.
 *
 * @author David Sehnal <david.sehnal@gmail.com>
 * @author Alexander Rose <alexander.rose@weirdbyte.de>
 * @author Kim Juho <juho_kim@outlook.com>
 */
import { CifWriter } from '../../../mol-io/writer/cif.js';
import { Structure } from '../structure.js';
import { Model } from '../model.js';
import { CustomPropertyDescriptor } from '../../custom-property.js';
export interface CifExportContext {
    structures: Structure[];
    firstModel: Model;
    cache: any;
}
export type CifExportCategoryInfo = [CifWriter.Category, any /** context */, CifWriter.Encoder.WriteCategoryOptions] | [CifWriter.Category, any /** context */];
export declare namespace CifExportContext {
    function create(structures: Structure | Structure[]): CifExportContext;
}
export declare const mmCIF_Export_Filters: {
    onlyPositions: CifWriter.Category.Filter;
};
type encode_mmCIF_categories_Params = {
    exportCtx?: CifExportContext;
    encoder?: CifWriter.Encoder;
    /** Skip provided categories */
    skipCategoryNames?: Set<string>;
    /** If defined, include only specified categories */
    includedCategoryNames?: Set<string>;
    /** If true, copy all categories present in an input mmCIF file */
    copyAllCategories?: boolean;
    /** If enabled, keep atom_site.id from the input data, otherwise use 1-based index of atom */
    doNotReindexAtomSiteId?: boolean;
    /** List of custom properties to include */
    customProperties?: CustomPropertyDescriptor[];
    extensions?: {
        /**
         * If specified, includes molstar_bond_site category with explicit bonds based on atom_site.id.
         * Forces doNotReindexAtomSiteId to true.
         * Note: This is not a standard mmCIF category and is currently specific to Mol*.
         */
        molstar_bond_site?: boolean;
    };
};
/** Doesn't start a data block */
export declare function encode_mmCIF_categories(encoder: CifWriter.Encoder, structures: Structure | Structure[], params?: encode_mmCIF_categories_Params): void;
declare function to_mmCIF(name: string, structures: Structure | Structure[], asBinary?: boolean, params?: encode_mmCIF_categories_Params): string | Uint8Array<ArrayBuffer>;
export { to_mmCIF };
