import { Loci } from 'molstar/lib/mol-model/loci';
import { ParamDefinition as PD } from 'molstar/lib/mol-util/param-definition';
import { Representation, RepresentationParamsGetter, RepresentationContext } from 'molstar/lib/mol-repr/representation';
import { LabelOptions } from 'molstar/lib/mol-theme/label';
export interface ContactData {
    pairs: Loci.Bundle<2>[];
}
export declare const ContactParams: {
    visuals: PD.MultiSelect<"text" | "cylinder">;
    unitLabel: PD.Text<string>;
    borderWidth: PD.Numeric;
    customText: PD.Text<string>;
    textColor: PD.Color;
    textSize: PD.Numeric;
    sizeFactor: PD.Numeric;
    borderColor: PD.Color;
    offsetX: PD.Numeric;
    offsetY: PD.Numeric;
    offsetZ: PD.Numeric;
    background: PD.BooleanParam;
    backgroundMargin: PD.Numeric;
    backgroundColor: PD.Color;
    backgroundOpacity: PD.Numeric;
    tether: PD.BooleanParam;
    tetherLength: PD.Numeric;
    tetherBaseWidth: PD.Numeric;
    attachment: PD.Select<"bottom-left" | "bottom-center" | "bottom-right" | "middle-left" | "middle-center" | "middle-right" | "top-left" | "top-center" | "top-right">;
    fontFamily: PD.Select<import("molstar/lib/mol-geo/geometry/text/font-atlas").FontFamily>;
    fontQuality: PD.Select<number>;
    fontStyle: PD.Select<import("molstar/lib/mol-geo/geometry/text/font-atlas").FontStyle>;
    fontVariant: PD.Select<import("molstar/lib/mol-geo/geometry/text/font-atlas").FontVariant>;
    fontWeight: PD.Select<import("molstar/lib/mol-geo/geometry/text/font-atlas").FontWeight>;
    alpha: PD.Numeric;
    quality: PD.Select<"auto" | "medium" | "high" | "low" | "custom" | "highest" | "higher" | "lower" | "lowest">;
    material: PD.Group<PD.Normalize<{
        metalness: number;
        roughness: number;
        bumpiness: number;
    }>>;
    clip: PD.Group<PD.Normalize<{
        variant: import("molstar/lib/mol-util/clip").Clip.Variant;
        objects: PD.Normalize<{
            type: any;
            invert: any;
            position: any;
            rotation: any;
            scale: any;
        }>[];
    }>>;
    instanceGranularity: PD.BooleanParam;
    lineSizeAttenuation: PD.BooleanParam;
    linesSize: PD.Numeric;
    dashLength: PD.Numeric;
    interactionType: PD.Text<string>;
    cylinderColor: PD.Color;
    sizeAspectRatio: PD.Numeric;
    doubleSided: PD.BooleanParam;
    ignoreLight: PD.BooleanParam;
    xrayShaded: PD.BooleanParam;
    transparentBackfaces: PD.Select<string>;
    bumpFrequency: PD.Numeric;
    bumpAmplitude: PD.Numeric;
};
export declare type ContactParams = typeof ContactParams;
export declare type ContactProps = PD.Values<ContactParams>;
export declare function contactLabel(pair: Loci.Bundle<2>, options?: Partial<LabelOptions & {
    interactionType: string;
}>): string;
export declare type ContactRepresentation = Representation<ContactData, ContactParams>;
export declare function ContactRepresentation(ctx: RepresentationContext, getParams: RepresentationParamsGetter<ContactData, ContactParams>): ContactRepresentation;
