import type { ComponentType } from 'react';
import type { Schema, ConfigFunction } from '@markdoc/markdoc/dist/src/types';
import type { CodeSamplesConfig } from '../code-samples';
import type { HooksConfig, Unstable_ExternalCodeSample } from '../types';
import type { Events } from '../../events';
import type { LayoutVariant } from '@redocly/theme';
import type { OperationModel } from '../../models/types';
import type { DownloadUrlsConfig } from '../../components/Download/types';
export interface Options {
    scrollYOffset: () => number;
    hideLoading: boolean;
    markdocOptions?: {
        tags: Record<string, Schema>;
        nodes: Record<string, Schema>;
        components: Record<string, ComponentType>;
        variables?: Record<string, any>;
        partials?: Record<string, any>;
        functions?: Record<string, ConfigFunction>;
    };
    hideSidebar: boolean;
    feedback: Record<string, any>;
    unstable_hooks: HooksConfig;
    hideReplay: boolean;
    oAuth2RedirectURI: string | null;
    corsProxyUrl?: string;
    requestInterceptor: ((req: Request, operation: OperationModel) => void) | undefined | null;
    sortRequiredPropsFirst: boolean;
    sanitize: boolean;
    hideDownloadButtons: boolean | null;
    downloadUrls?: DownloadUrlsConfig;
    onlyRequiredInSamples: boolean;
    generatedSamplesMaxDepth: number;
    showExtensions: string[] | boolean;
    hideSchemaTitles: boolean;
    jsonSamplesExpandLevel: number;
    schemasExpansionLevel: number | undefined;
    mockServer?: {
        url: string;
        position: 'first' | 'last' | 'replace' | 'off';
        description: string;
    };
    maxDisplayedEnumValues: number;
    ignoreNamedSchemas: Set<string>;
    unstable_externalCodeSamples: Unstable_ExternalCodeSample[];
    schemaDefinitionsTagName?: string;
    layout: LayoutVariant;
    hideInfoMetadata: boolean;
    events: Events;
    onDeepLinkClick: ((link: string) => void) | undefined | null;
    skipBundle: boolean;
    routingBasePath: string;
    codeSamples: CodeSamplesConfig;
    hidePropertiesPrefix: boolean;
}
