import type { default as Oas, Operation } from 'oas';
export declare const CODE_SAMPLES = "code-samples";
export declare const EXPLORER_ENABLED = "explorer-enabled";
export declare const HEADERS = "headers";
export declare const METRICS_ENABLED = "metrics-enabled";
export declare const PROXY_ENABLED = "proxy-enabled";
export declare const SAMPLES_ENABLED = "samples-enabled";
export declare const SAMPLES_LANGUAGES = "samples-languages";
export declare const SEND_DEFAULTS = "send-defaults";
export declare const SIMPLE_MODE = "simple-mode";
export type Extensions = {
    [CODE_SAMPLES]: {
        language: string;
        code: string;
        name?: string;
        install?: string;
    };
    [EXPLORER_ENABLED]: boolean;
    [HEADERS]: Record<string, string | number>[];
    [METRICS_ENABLED]: boolean;
    [PROXY_ENABLED]: boolean;
    [SAMPLES_ENABLED]: boolean;
    [SAMPLES_LANGUAGES]: string[];
    [SEND_DEFAULTS]: boolean;
    [SIMPLE_MODE]: boolean;
};
export declare const defaults: Extensions;
/**
 * With one of our custom OpenAPI extensions, look for it in either an instance of `oas` or an
 * instance of the `Operation` class in `oas`.
 *
 * Our custom extensions can either be nestled inside of an `x-readme` object or at the root level
 * with an `x-` prefix.
 *
 * @see {@link https://npm.im/oas}
 * @see {@link https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.3.md#specificationExtensions}
 * @see {@link https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#specificationExtensions}
 * @param extension Specification extension to lookup.
 * @param oas An instance of the `oas` library class.
 * @param operation An instsance of the `Operation` class from the `oas` library.
 * @returns Contents of the extension if found, otherwise the extensions default value.
 */
export declare function getExtension(extension: keyof Extensions, oas: Oas, operation?: Operation): unknown;
/**
 * With one of our custom OpenAPI extensions, determine if it's valid on a given instance of `oas`.
 *
 * @todo add support for validating on operations.
 *
 * @see {@link https://npm.im/oas}
 * @see {@link https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.3.md#specificationExtensions}
 * @see {@link https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#specificationExtensions}
 * @param extension Specification extension to lookup.
 * @param oas An instance of the `oas` library class.
 */
export declare function validateExtension(extension: keyof Extensions, oas: Oas): void;
