export type Languages = 'JavaScript' | 'Node.js' | 'curl' | 'Java8+Apache' | 'Java' | 'Python' | 'Go' | 'PHP' | 'C#' | 'C#+Newtonsoft' | 'Ruby' | 'R';
export interface BasicLanguageOptions {
    indent?: string;
    withImports?: boolean;
    withComments?: boolean;
}
interface CodeSampleBasicConfig {
    lang: Languages | 'Payload';
    label?: string;
    options?: BasicLanguageOptions;
}
export interface CurlCodeSampleConfig extends CodeSampleBasicConfig {
    lang: 'curl';
    options?: BasicLanguageOptions & {
        binary?: boolean;
    };
}
export interface JavaScriptCodeSampleConfig extends CodeSampleBasicConfig {
    lang: 'JavaScript';
    options?: BasicLanguageOptions & {
        credentials?: 'omit' | 'same-origin' | 'include';
    };
}
export interface GoCodeSampleConfig extends CodeSampleBasicConfig {
    lang: 'Go';
}
export interface NodeJsCodeSampleConfig extends CodeSampleBasicConfig {
    lang: 'Node.js';
}
export interface PythonCodeSampleConfig extends CodeSampleBasicConfig {
    lang: 'Python';
}
export interface Java8CodeSampleConfig extends CodeSampleBasicConfig {
    lang: 'Java8+Apache';
}
export interface JavaCodeSampleConfig extends CodeSampleBasicConfig {
    lang: 'Java';
}
export interface CSharpCodeSampleConfig extends CodeSampleBasicConfig {
    lang: 'C#';
}
export interface CSharpNewtonsoftCodeSampleConfig extends CodeSampleBasicConfig {
    lang: 'C#+Newtonsoft';
}
export interface PHPCodeSampleConfig extends CodeSampleBasicConfig {
    lang: 'PHP';
}
export interface RubyCodeSampleConfig extends CodeSampleBasicConfig {
    lang: 'Ruby';
}
export interface RCodeSampleConfig extends CodeSampleBasicConfig {
    lang: 'R';
}
export interface PayloadCodeSampleConfig extends CodeSampleBasicConfig {
    lang: 'Payload';
}
export interface CustomLanguageCodeSampleConfig extends Omit<CodeSampleBasicConfig, 'lang'> {
    lang: string;
}
export type CodeSampleConfig = CurlCodeSampleConfig | JavaScriptCodeSampleConfig | NodeJsCodeSampleConfig | PythonCodeSampleConfig | Java8CodeSampleConfig | JavaCodeSampleConfig | CSharpCodeSampleConfig | CSharpNewtonsoftCodeSampleConfig | PHPCodeSampleConfig | GoCodeSampleConfig | RubyCodeSampleConfig | RCodeSampleConfig;
/**
 * Code Samples Generator rules
 * - Openapi docs displays language from redocly config.
 * - In addition code samples will be generated only for defined languages in array
 */
export interface CodeSamplesConfig {
    languages: (CodeSampleConfig | PayloadCodeSampleConfig | CustomLanguageCodeSampleConfig)[];
    skipOptionalParameters?: boolean;
    withOAuth2Call?: boolean;
    onSampleTabClick?: (label: string) => void;
}
export {};
