import { RDKitProviderCacheOptions } from '../contexts';
import { AlignmentDetails, DrawingDetails, MolNotation, SourceMolNotation } from './utils/chem';
export declare const RDKIT_WORKER_ACTIONS: {
    readonly INIT_RDKIT_MODULE: "INIT_RDKIT_MODULE";
    readonly LOCAL_RESPONSE: "LOCAL_RESPONSE";
    readonly BROADCASTED_RESPONSE: "BROADCASTED_RESPONSE";
    readonly IS_CHIRAL: "IS_CHIRAL";
    readonly GET_MORGAN_FP: "GET_MORGAN_FP";
    readonly GET_SVG: "GET_SVG";
    readonly GET_SVG_FROM_SMARTS: "GET_SVG_FROM_SMARTS";
    readonly GET_MOLECULE_DETAILS: "GET_MOLECULE_DETAILS";
    readonly DEPRECATED_GET_MOLECULE_DETAILS: "DEPRECATED_GET_MOLECULE_DETAILS";
    readonly GET_CANONICAL_FORM_FOR_STRUCTURE: "GET_CANONICAL_FORM_FOR_STRUCTURE";
    readonly IS_VALID_SMILES: "IS_VALID_SMILES";
    readonly IS_VALID_SMARTS: "IS_VALID_SMARTS";
    readonly HAS_MATCHING_SUBSTRUCTURE: "HAS_MATCHING_SUBSTRUCTURE";
    readonly GET_SUBSTRUCTURE_MATCH: "GET_SUBSTRUCTURE_MATCH";
    readonly TERMINATE: "TERMINATE";
    readonly CONVERT_MOL_NOTATION: "CONVERT_MOL_NOTATION";
    readonly IS_VALID_MOLBLOCK: "IS_VALID_MOLBLOCK";
    readonly REMOVE_HS: "REMOVE_HS";
    readonly ADD_HS: "ADD_HS";
    readonly GET_NEW_COORDS: "GET_NEW_COORDS";
    readonly GET_STEREO_TAGS: "GET_STEREO_TAGS";
};
type ValueOf<T> = T[keyof T];
export type RDKIT_WORKER_ACTIONS_TYPE = ValueOf<typeof RDKIT_WORKER_ACTIONS>;
export declare const getActionResponseIdentifier: (action: RDKIT_WORKER_ACTIONS_TYPE) => string;
export declare const getActionLocalResponseIdentifier: (action: RDKIT_WORKER_ACTIONS_TYPE) => string;
export declare const isLocalResponse: (action: RDKIT_WORKER_ACTIONS_TYPE) => boolean;
export declare const localResponseToResponse: (action: RDKIT_WORKER_ACTIONS_TYPE) => string;
export type WorkerMessage = WorkerMessageNarrower & WorkerMessageGerneric;
export type WorkerMessageNarrower = {
    actionType: 'INIT_RDKIT_MODULE';
    key: string;
    payload: {
        rdkitPath?: string;
        cache?: RDKitProviderCacheOptions;
        preferCoordgen: boolean;
        removeHs: boolean;
        kekulize: boolean;
    };
} | {
    actionType: 'IS_CHIRAL';
    key: string;
    payload: {
        smiles: string;
    };
} | {
    actionType: 'GET_MORGAN_FP';
    key: string;
    payload: {
        smiles: string;
        options?: {
            radius?: number;
            nBits?: number;
            len?: number;
        };
    };
} | {
    actionType: 'GET_SVG';
    key: string;
    payload: {
        smiles: string;
        drawingDetails?: DrawingDetails;
        alignmentDetails?: AlignmentDetails;
    };
} | {
    actionType: 'GET_SVG_FROM_SMARTS';
    key: string;
    payload: {
        smarts: string;
        width: number;
        height: number;
    };
} | {
    actionType: 'GET_MOLECULE_DETAILS';
    key: string;
    payload: {
        smiles: string;
    };
} | {
    actionType: 'DEPRECATED_GET_MOLECULE_DETAILS';
    key: string;
    payload: {
        smiles: string;
    };
} | {
    actionType: 'GET_CANONICAL_FORM_FOR_STRUCTURE';
    key: string;
    payload: {
        structure: string;
        molNotation?: MolNotation;
        useQMol?: boolean;
    };
} | {
    actionType: 'IS_VALID_SMILES';
    key: string;
    payload: {
        smiles: string;
    };
} | {
    actionType: 'IS_VALID_SMARTS';
    key: string;
    payload: {
        smarts: string;
    };
} | {
    actionType: 'HAS_MATCHING_SUBSTRUCTURE';
    key: string;
    payload: {
        smiles: string;
        substructure: string;
    };
} | {
    actionType: 'GET_SUBSTRUCTURE_MATCH';
    key: string;
    payload: {
        structure: string;
        substructure: string;
    };
} | {
    actionType: 'TERMINATE';
    key: string;
} | {
    actionType: 'CONVERT_MOL_NOTATION';
    key: string;
    payload: {
        moleculeString: string;
        targetNotation: MolNotation;
        sourceNotation?: SourceMolNotation;
        useQMol?: boolean;
    };
} | {
    actionType: 'IS_VALID_MOLBLOCK';
    key: string;
    payload: {
        mdl: string;
    };
} | {
    actionType: 'REMOVE_HS';
    key: string;
    payload: {
        structure: string;
    };
} | {
    actionType: 'ADD_HS';
    key: string;
    payload: {
        structure: string;
    };
} | {
    actionType: 'GET_NEW_COORDS';
    key: string;
    payload: {
        structure: string;
        useCoordGen?: boolean;
    };
} | {
    actionType: 'GET_STEREO_TAGS';
    key: string;
    payload: {
        structure: string;
    };
};
export type ActionWorkerMessageNarrowerApplier<ActionType extends RDKIT_WORKER_ACTIONS_TYPE> = {
    actionType: ActionType;
    key: string;
} & WorkerMessageNarrower;
interface WorkerMessageGerneric {
    actionType: RDKIT_WORKER_ACTIONS_TYPE;
    key: string;
    payload?: unknown;
}
export {};
