import { type HiGlassApi } from './higlass-component-wrapper';
import type { TemplateTrackDef } from '@gosling-lang/gosling-schema';
import type { RequestInit } from '@gosling-lang/higlass-schema';
import React from 'react';
import * as gosling from '..';
import { type Theme } from './utils/theme';
import { type GoslingApi } from '../api/api';
/** Matches URLs to specific fetch options so that datafetchers have access URL specific fetch options */
export interface UrlToFetchOptions {
    [url: string]: RequestInit;
}
type CompiledCallbackFn = (goslingSpec: gosling.GoslingSpec, higlassSpec: gosling.HiGlassSpec, _additionalData: {
    _processedSpec: gosling.GoslingSpec;
}) => void;
export interface GoslingCompProps {
    spec?: gosling.GoslingSpec;
    compiled?: CompiledCallbackFn;
    padding?: number;
    margin?: number;
    border?: string;
    id?: string;
    className?: string;
    theme?: Theme;
    templates?: TemplateTrackDef[];
    urlToFetchOptions?: UrlToFetchOptions;
    experimental?: {
        reactive?: boolean;
    };
}
export type GoslingRef = {
    api: GoslingApi;
    hgApi: HiGlassApi;
};
export declare const GoslingComponent: React.ForwardRefExoticComponent<GoslingCompProps & React.RefAttributes<gosling.GoslingRef>>;
export {};
//# sourceMappingURL=gosling-component.d.ts.map