@scalar/types
Version:
Types to work with Scalar packages
545 lines • 27.5 kB
TypeScript
import { type ZodType, z } from 'zod';
import type { AuthenticationConfiguration } from './authentication-configuration.js';
import { type SourceConfiguration } from './source-configuration.js';
/**
* Standard configuration for the Api Reference.
*
* This is used internally to the configure the applications and does not include the sources.
*
* Sources should only be specified in the user facing configurations.
*
* In the the future it is likely sources will be removed completely from the configuration and instead
* specified through a separate addDocument interface.
*/
export declare const apiReferenceConfigurationSchema: z.ZodObject<{
title: z.ZodOptional<z.ZodString>;
slug: z.ZodOptional<z.ZodString>;
authentication: z.ZodOptional<z.ZodAny>;
baseServerURL: z.ZodOptional<z.ZodString>;
hideClientButton: z.ZodCatch<z.ZodDefault<z.ZodOptional<z.ZodBoolean>>>;
proxyUrl: z.ZodOptional<z.ZodString>;
oauth2RedirectUri: z.ZodOptional<z.ZodString>;
searchHotKey: z.ZodOptional<z.ZodEnum<{
a: "a";
b: "b";
c: "c";
d: "d";
e: "e";
f: "f";
g: "g";
h: "h";
i: "i";
j: "j";
k: "k";
l: "l";
m: "m";
n: "n";
o: "o";
p: "p";
q: "q";
r: "r";
s: "s";
t: "t";
u: "u";
v: "v";
w: "w";
x: "x";
y: "y";
z: "z";
}>>;
servers: z.ZodOptional<z.ZodArray<z.ZodAny>>;
showSidebar: z.ZodCatch<z.ZodDefault<z.ZodOptional<z.ZodBoolean>>>;
showDeveloperTools: z.ZodCatch<z.ZodDefault<z.ZodOptional<z.ZodEnum<{
localhost: "localhost";
always: "always";
never: "never";
}>>>>;
showToolbar: z.ZodCatch<z.ZodDefault<z.ZodOptional<z.ZodEnum<{
localhost: "localhost";
always: "always";
never: "never";
}>>>>;
operationTitleSource: z.ZodCatch<z.ZodDefault<z.ZodOptional<z.ZodEnum<{
summary: "summary";
path: "path";
}>>>>;
theme: z.ZodCatch<z.ZodDefault<z.ZodOptional<z.ZodEnum<{
default: "default";
alternate: "alternate";
moon: "moon";
purple: "purple";
solarized: "solarized";
bluePlanet: "bluePlanet";
deepSpace: "deepSpace";
saturn: "saturn";
kepler: "kepler";
elysiajs: "elysiajs";
fastify: "fastify";
mars: "mars";
laserwave: "laserwave";
none: "none";
}>>>>;
_integration: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
elysiajs: "elysiajs";
fastify: "fastify";
adonisjs: "adonisjs";
astro: "astro";
docusaurus: "docusaurus";
dotnet: "dotnet";
express: "express";
fastapi: "fastapi";
go: "go";
hono: "hono";
html: "html";
laravel: "laravel";
litestar: "litestar";
nestjs: "nestjs";
nextjs: "nextjs";
nitro: "nitro";
nuxt: "nuxt";
platformatic: "platformatic";
react: "react";
rust: "rust";
svelte: "svelte";
vue: "vue";
}>>>;
onRequestSent: z.ZodOptional<z.ZodFunction<z.ZodTuple<readonly [z.ZodString], null>, z.ZodVoid>>;
persistAuth: z.ZodCatch<z.ZodDefault<z.ZodOptional<z.ZodBoolean>>>;
telemetry: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
externalUrls: z.ZodPrefault<z.ZodObject<{
dashboardUrl: z.ZodPrefault<z.ZodString>;
registryUrl: z.ZodPrefault<z.ZodString>;
proxyUrl: z.ZodPrefault<z.ZodString>;
apiBaseUrl: z.ZodPrefault<z.ZodString>;
}, z.core.$strip>>;
layout: z.ZodCatch<z.ZodDefault<z.ZodOptional<z.ZodEnum<{
modern: "modern";
classic: "classic";
}>>>>;
proxy: z.ZodOptional<z.ZodString>;
fetch: z.ZodOptional<z.ZodCustom<(input: string | URL | Request, init?: RequestInit) => Promise<Response>, (input: string | URL | Request, init?: RequestInit) => Promise<Response>>>;
customFetch: z.ZodOptional<z.ZodCustom<(input: string | URL | Request, init?: RequestInit) => Promise<Response>, (input: string | URL | Request, init?: RequestInit) => Promise<Response>>>;
plugins: z.ZodOptional<z.ZodArray<z.ZodFunction<z.ZodTuple<readonly [], null>, z.ZodObject<{
name: z.ZodString;
extensions: z.ZodArray<z.ZodObject<{
name: z.ZodString;
component: z.ZodUnknown;
renderer: z.ZodOptional<z.ZodUnknown>;
}, z.core.$strip>>;
views: z.ZodOptional<z.ZodObject<{
'content.end': z.ZodOptional<z.ZodArray<z.ZodObject<{
component: z.ZodUnknown;
renderer: z.ZodOptional<z.ZodUnknown>;
props: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
}, z.core.$strip>>>;
}, z.core.$strip>>;
hooks: z.ZodOptional<z.ZodObject<{
onInit: z.ZodOptional<z.ZodFunction<z.ZodTuple<readonly [z.ZodObject<{
config: z.ZodObject<{
title: z.ZodOptional<z.ZodOptional<z.ZodString>>;
slug: z.ZodOptional<z.ZodOptional<z.ZodString>>;
authentication: z.ZodOptional<z.ZodOptional<z.ZodAny>>;
baseServerURL: z.ZodOptional<z.ZodOptional<z.ZodString>>;
hideClientButton: z.ZodOptional<z.ZodCatch<z.ZodDefault<z.ZodOptional<z.ZodBoolean>>>>;
proxyUrl: z.ZodOptional<z.ZodOptional<z.ZodString>>;
oauth2RedirectUri: z.ZodOptional<z.ZodOptional<z.ZodString>>;
searchHotKey: z.ZodOptional<z.ZodOptional<z.ZodEnum<{
a: "a";
b: "b";
c: "c";
d: "d";
e: "e";
f: "f";
g: "g";
h: "h";
i: "i";
j: "j";
k: "k";
l: "l";
m: "m";
n: "n";
o: "o";
p: "p";
q: "q";
r: "r";
s: "s";
t: "t";
u: "u";
v: "v";
w: "w";
x: "x";
y: "y";
z: "z";
}>>>;
servers: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodAny>>>;
showSidebar: z.ZodOptional<z.ZodCatch<z.ZodDefault<z.ZodOptional<z.ZodBoolean>>>>;
showDeveloperTools: z.ZodOptional<z.ZodCatch<z.ZodDefault<z.ZodOptional<z.ZodEnum<{
localhost: "localhost";
always: "always";
never: "never";
}>>>>>;
showToolbar: z.ZodOptional<z.ZodCatch<z.ZodDefault<z.ZodOptional<z.ZodEnum<{
localhost: "localhost";
always: "always";
never: "never";
}>>>>>;
operationTitleSource: z.ZodOptional<z.ZodCatch<z.ZodDefault<z.ZodOptional<z.ZodEnum<{
summary: "summary";
path: "path";
}>>>>>;
theme: z.ZodOptional<z.ZodCatch<z.ZodDefault<z.ZodOptional<z.ZodEnum<{
default: "default";
alternate: "alternate";
moon: "moon";
purple: "purple";
solarized: "solarized";
bluePlanet: "bluePlanet";
deepSpace: "deepSpace";
saturn: "saturn";
kepler: "kepler";
elysiajs: "elysiajs";
fastify: "fastify";
mars: "mars";
laserwave: "laserwave";
none: "none";
}>>>>>;
_integration: z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodEnum<{
elysiajs: "elysiajs";
fastify: "fastify";
adonisjs: "adonisjs";
astro: "astro";
docusaurus: "docusaurus";
dotnet: "dotnet";
express: "express";
fastapi: "fastapi";
go: "go";
hono: "hono";
html: "html";
laravel: "laravel";
litestar: "litestar";
nestjs: "nestjs";
nextjs: "nextjs";
nitro: "nitro";
nuxt: "nuxt";
platformatic: "platformatic";
react: "react";
rust: "rust";
svelte: "svelte";
vue: "vue";
}>>>>;
onRequestSent: z.ZodOptional<z.ZodOptional<z.ZodFunction<z.ZodTuple<readonly [z.ZodString], null>, z.ZodVoid>>>;
persistAuth: z.ZodOptional<z.ZodCatch<z.ZodDefault<z.ZodOptional<z.ZodBoolean>>>>;
plugins: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodFunction<z.ZodTuple<readonly [], null>, z.ZodObject<{
name: z.ZodString;
views: z.ZodOptional<z.ZodObject<{
'request.section': z.ZodOptional<z.ZodArray<z.ZodObject<{
title: z.ZodOptional<z.ZodString>;
component: z.ZodUnknown;
props: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
}, z.core.$strip>>>;
'response.section': z.ZodOptional<z.ZodArray<z.ZodObject<{
title: z.ZodOptional<z.ZodString>;
component: z.ZodUnknown;
props: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
}, z.core.$strip>>>;
}, z.core.$strip>>;
hooks: z.ZodOptional<z.ZodObject<{
onBeforeRequest: z.ZodOptional<z.ZodFunction<z.ZodTuple<readonly [z.ZodObject<{
request: z.ZodAny;
}, z.core.$strip>], null>, z.core.$ZodFunctionOut>>;
onResponseReceived: z.ZodOptional<z.ZodFunction<z.ZodTuple<readonly [z.ZodObject<{
response: z.ZodCustom<Response, Response>;
operation: z.ZodRecord<z.ZodString, z.ZodAny>;
}, z.core.$strip>], null>, z.core.$ZodFunctionOut>>;
}, z.core.$strip>>;
}, z.core.$strip>>>>>;
telemetry: z.ZodOptional<z.ZodDefault<z.ZodOptional<z.ZodBoolean>>>;
externalUrls: z.ZodOptional<z.ZodPrefault<z.ZodObject<{
dashboardUrl: z.ZodPrefault<z.ZodString>;
registryUrl: z.ZodPrefault<z.ZodString>;
proxyUrl: z.ZodPrefault<z.ZodString>;
apiBaseUrl: z.ZodPrefault<z.ZodString>;
}, z.core.$strip>>>;
}, z.core.$strip>;
}, z.core.$strip>], null>, z.core.$ZodFunctionOut>>;
onConfigChange: z.ZodOptional<z.ZodFunction<z.ZodTuple<readonly [z.ZodObject<{
config: z.ZodObject<{
title: z.ZodOptional<z.ZodOptional<z.ZodString>>;
slug: z.ZodOptional<z.ZodOptional<z.ZodString>>;
authentication: z.ZodOptional<z.ZodOptional<z.ZodAny>>;
baseServerURL: z.ZodOptional<z.ZodOptional<z.ZodString>>;
hideClientButton: z.ZodOptional<z.ZodCatch<z.ZodDefault<z.ZodOptional<z.ZodBoolean>>>>;
proxyUrl: z.ZodOptional<z.ZodOptional<z.ZodString>>;
oauth2RedirectUri: z.ZodOptional<z.ZodOptional<z.ZodString>>;
searchHotKey: z.ZodOptional<z.ZodOptional<z.ZodEnum<{
a: "a";
b: "b";
c: "c";
d: "d";
e: "e";
f: "f";
g: "g";
h: "h";
i: "i";
j: "j";
k: "k";
l: "l";
m: "m";
n: "n";
o: "o";
p: "p";
q: "q";
r: "r";
s: "s";
t: "t";
u: "u";
v: "v";
w: "w";
x: "x";
y: "y";
z: "z";
}>>>;
servers: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodAny>>>;
showSidebar: z.ZodOptional<z.ZodCatch<z.ZodDefault<z.ZodOptional<z.ZodBoolean>>>>;
showDeveloperTools: z.ZodOptional<z.ZodCatch<z.ZodDefault<z.ZodOptional<z.ZodEnum<{
localhost: "localhost";
always: "always";
never: "never";
}>>>>>;
showToolbar: z.ZodOptional<z.ZodCatch<z.ZodDefault<z.ZodOptional<z.ZodEnum<{
localhost: "localhost";
always: "always";
never: "never";
}>>>>>;
operationTitleSource: z.ZodOptional<z.ZodCatch<z.ZodDefault<z.ZodOptional<z.ZodEnum<{
summary: "summary";
path: "path";
}>>>>>;
theme: z.ZodOptional<z.ZodCatch<z.ZodDefault<z.ZodOptional<z.ZodEnum<{
default: "default";
alternate: "alternate";
moon: "moon";
purple: "purple";
solarized: "solarized";
bluePlanet: "bluePlanet";
deepSpace: "deepSpace";
saturn: "saturn";
kepler: "kepler";
elysiajs: "elysiajs";
fastify: "fastify";
mars: "mars";
laserwave: "laserwave";
none: "none";
}>>>>>;
_integration: z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodEnum<{
elysiajs: "elysiajs";
fastify: "fastify";
adonisjs: "adonisjs";
astro: "astro";
docusaurus: "docusaurus";
dotnet: "dotnet";
express: "express";
fastapi: "fastapi";
go: "go";
hono: "hono";
html: "html";
laravel: "laravel";
litestar: "litestar";
nestjs: "nestjs";
nextjs: "nextjs";
nitro: "nitro";
nuxt: "nuxt";
platformatic: "platformatic";
react: "react";
rust: "rust";
svelte: "svelte";
vue: "vue";
}>>>>;
onRequestSent: z.ZodOptional<z.ZodOptional<z.ZodFunction<z.ZodTuple<readonly [z.ZodString], null>, z.ZodVoid>>>;
persistAuth: z.ZodOptional<z.ZodCatch<z.ZodDefault<z.ZodOptional<z.ZodBoolean>>>>;
plugins: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodFunction<z.ZodTuple<readonly [], null>, z.ZodObject<{
name: z.ZodString;
views: z.ZodOptional<z.ZodObject<{
'request.section': z.ZodOptional<z.ZodArray<z.ZodObject<{
title: z.ZodOptional<z.ZodString>;
component: z.ZodUnknown;
props: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
}, z.core.$strip>>>;
'response.section': z.ZodOptional<z.ZodArray<z.ZodObject<{
title: z.ZodOptional<z.ZodString>;
component: z.ZodUnknown;
props: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
}, z.core.$strip>>>;
}, z.core.$strip>>;
hooks: z.ZodOptional<z.ZodObject<{
onBeforeRequest: z.ZodOptional<z.ZodFunction<z.ZodTuple<readonly [z.ZodObject<{
request: z.ZodAny;
}, z.core.$strip>], null>, z.core.$ZodFunctionOut>>;
onResponseReceived: z.ZodOptional<z.ZodFunction<z.ZodTuple<readonly [z.ZodObject<{
response: z.ZodCustom<Response, Response>;
operation: z.ZodRecord<z.ZodString, z.ZodAny>;
}, z.core.$strip>], null>, z.core.$ZodFunctionOut>>;
}, z.core.$strip>>;
}, z.core.$strip>>>>>;
telemetry: z.ZodOptional<z.ZodDefault<z.ZodOptional<z.ZodBoolean>>>;
externalUrls: z.ZodOptional<z.ZodPrefault<z.ZodObject<{
dashboardUrl: z.ZodPrefault<z.ZodString>;
registryUrl: z.ZodPrefault<z.ZodString>;
proxyUrl: z.ZodPrefault<z.ZodString>;
apiBaseUrl: z.ZodPrefault<z.ZodString>;
}, z.core.$strip>>>;
}, z.core.$strip>;
}, z.core.$strip>], null>, z.core.$ZodFunctionOut>>;
onDestroy: z.ZodOptional<z.ZodFunction<z.ZodTuple<readonly [], null>, z.core.$ZodFunctionOut>>;
}, z.core.$strip>>;
apiClientPlugins: z.ZodOptional<z.ZodArray<z.ZodAny>>;
}, z.core.$strip>>>>;
isEditable: z.ZodCatch<z.ZodDefault<z.ZodOptional<z.ZodBoolean>>>;
isLoading: z.ZodCatch<z.ZodDefault<z.ZodOptional<z.ZodBoolean>>>;
hideModels: z.ZodCatch<z.ZodDefault<z.ZodOptional<z.ZodBoolean>>>;
documentDownloadType: z.ZodCatch<z.ZodDefault<z.ZodOptional<z.ZodEnum<{
none: "none";
both: "both";
yaml: "yaml";
json: "json";
direct: "direct";
}>>>>;
hideDownloadButton: z.ZodOptional<z.ZodBoolean>;
hideTestRequestButton: z.ZodCatch<z.ZodDefault<z.ZodOptional<z.ZodBoolean>>>;
hideSearch: z.ZodCatch<z.ZodDefault<z.ZodOptional<z.ZodBoolean>>>;
showOperationId: z.ZodCatch<z.ZodDefault<z.ZodOptional<z.ZodBoolean>>>;
darkMode: z.ZodOptional<z.ZodBoolean>;
forceDarkModeState: z.ZodOptional<z.ZodEnum<{
dark: "dark";
light: "light";
}>>;
hideDarkModeToggle: z.ZodCatch<z.ZodDefault<z.ZodOptional<z.ZodBoolean>>>;
metaData: z.ZodOptional<z.ZodAny>;
favicon: z.ZodOptional<z.ZodString>;
hiddenClients: z.ZodOptional<z.ZodUnion<readonly [z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodBoolean, z.ZodArray<z.ZodString>]>>, z.ZodArray<z.ZodString>, z.ZodLiteral<true>]>>;
defaultHttpClient: z.ZodOptional<z.ZodObject<{
targetKey: z.ZodCustom<"http" | "c" | "r" | "go" | "rust" | "clojure" | "csharp" | "dart" | "fsharp" | "java" | "js" | "kotlin" | "node" | "objc" | "ocaml" | "php" | "powershell" | "python" | "ruby" | "shell" | "swift", "http" | "c" | "r" | "go" | "rust" | "clojure" | "csharp" | "dart" | "fsharp" | "java" | "js" | "kotlin" | "node" | "objc" | "ocaml" | "php" | "powershell" | "python" | "ruby" | "shell" | "swift">;
clientKey: z.ZodString;
}, z.core.$strip>>;
customCss: z.ZodOptional<z.ZodString>;
onSpecUpdate: z.ZodOptional<z.ZodFunction<z.ZodTuple<readonly [z.ZodString], null>, z.ZodVoid>>;
onServerChange: z.ZodOptional<z.ZodFunction<z.ZodTuple<readonly [z.ZodString], null>, z.ZodVoid>>;
onDocumentSelect: z.ZodType<(() => Promise<void> | void) | undefined>;
onLoaded: z.ZodType<((slug: string) => Promise<void> | void) | undefined>;
onBeforeRequest: z.ZodType<((a: {
request: Request;
requestBuilder: any;
envVariables: Record<string, string>;
}) => Promise<void> | void) | undefined>;
onShowMore: z.ZodType<((a: string) => Promise<void> | void) | undefined>;
onSidebarClick: z.ZodType<((a: string) => Promise<void> | void) | undefined>;
pathRouting: z.ZodOptional<z.ZodObject<{
basePath: z.ZodString;
}, z.core.$strip>>;
mcp: z.ZodOptional<z.ZodObject<{
name: z.ZodOptional<z.ZodString>;
url: z.ZodOptional<z.ZodString>;
disabled: z.ZodOptional<z.ZodBoolean>;
}, z.core.$strip>>;
generateHeadingSlug: z.ZodOptional<z.ZodFunction<z.ZodTuple<readonly [z.ZodObject<{
slug: z.ZodDefault<z.ZodString>;
}, z.core.$strip>], null>, z.ZodString>>;
generateModelSlug: z.ZodOptional<z.ZodFunction<z.ZodTuple<readonly [z.ZodObject<{
name: z.ZodDefault<z.ZodString>;
}, z.core.$strip>], null>, z.ZodString>>;
generateTagSlug: z.ZodOptional<z.ZodFunction<z.ZodTuple<readonly [z.ZodObject<{
name: z.ZodDefault<z.ZodString>;
}, z.core.$strip>], null>, z.ZodString>>;
generateOperationSlug: z.ZodOptional<z.ZodFunction<z.ZodTuple<readonly [z.ZodObject<{
path: z.ZodString;
operationId: z.ZodOptional<z.ZodString>;
method: z.ZodString;
summary: z.ZodOptional<z.ZodString>;
}, z.core.$strip>], null>, z.ZodString>>;
generateWebhookSlug: z.ZodOptional<z.ZodFunction<z.ZodTuple<readonly [z.ZodObject<{
name: z.ZodString;
method: z.ZodOptional<z.ZodString>;
}, z.core.$strip>], null>, z.ZodString>>;
redirect: z.ZodOptional<z.ZodFunction<z.ZodTuple<readonly [z.ZodString], null>, z.ZodOptional<z.ZodNullable<z.ZodString>>>>;
withDefaultFonts: z.ZodCatch<z.ZodDefault<z.ZodOptional<z.ZodBoolean>>>;
defaultOpenFirstTag: z.ZodCatch<z.ZodDefault<z.ZodOptional<z.ZodBoolean>>>;
defaultOpenAllTags: z.ZodCatch<z.ZodDefault<z.ZodOptional<z.ZodBoolean>>>;
expandAllModelSections: z.ZodCatch<z.ZodDefault<z.ZodOptional<z.ZodBoolean>>>;
expandAllResponses: z.ZodCatch<z.ZodDefault<z.ZodOptional<z.ZodBoolean>>>;
tagsSorter: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"alpha">, z.ZodFunction<z.ZodTuple<readonly [z.ZodAny, z.ZodAny], null>, z.ZodNumber>]>>;
operationsSorter: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"alpha">, z.ZodLiteral<"method">, z.ZodFunction<z.ZodTuple<readonly [z.ZodAny, z.ZodAny], null>, z.ZodNumber>]>>;
orderSchemaPropertiesBy: z.ZodCatch<z.ZodDefault<z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"alpha">, z.ZodLiteral<"preserve">]>>>>;
orderRequiredPropertiesFirst: z.ZodCatch<z.ZodDefault<z.ZodOptional<z.ZodBoolean>>>;
}, z.core.$strip>;
/**
* Pure configuration without the sources
*
* @deprecated Remove this once the types have been fully migrated
*/
export type ApiReferenceConfigurationRaw = Omit<z.infer<typeof apiReferenceConfigurationSchema>, // Remove deprecated attributes
// Remove deprecated attributes
'proxy' | 'spec' | 'authentication' | 'showToolbar'> & {
authentication?: AuthenticationConfiguration;
};
/**
* Configuration for the Scalar Api Reference integrations
*
* See the type `ApiReferenceConfigurationWithSource` or `AnyApiReferenceConfiguration`\
* for the configuration that includes the sources for you OpenAPI documents
*/
export type ApiReferenceConfiguration = ApiReferenceConfigurationRaw & {
/** @deprecated
* This type now refers to the base configuration that does not include the sources.
* Use the type `ApiReferenceConfigurationWithSource` instead.
*/
url?: SourceConfiguration['url'];
/** @deprecated
* This type now refers to the base configuration that does not include the sources.
* Use the type `ApiReferenceConfigurationWithSource` instead.
*/
content?: SourceConfiguration['content'];
/**
* Fired before the outbound request is built and sent. Mutate the **request builder** so the eventual fetch call
* reflects your changes (method, path, headers, body, and related fields).
*
* **Experimental:** The builder matches {@link https://github.com/scalar/scalar/blob/main/packages/workspace-store/src/request-example/builder/request-factory.ts RequestFactory}
* (`import type { RequestFactory } from '@scalar/workspace-store/request-example'`). That shape is still experimental and may change in minor releases.
*
* @param input - Hook argument from the integration layer.
* @param input.request - **Deprecated** when treated as a fetch API `Request`. Prefer thinking of this value as the
* mutable builder ({@link https://github.com/scalar/scalar/blob/main/packages/workspace-store/src/request-example/builder/request-factory.ts RequestFactory}).
* Some call sites only pass this property.
* @param input.requestBuilder - The same builder when exposed under this name; **prefer** mutating this when your integration provides it.
* @returns void or a promise that resolves when the hook finishes
* @example
* ```ts
* onBeforeRequest: ({ request: builder }) => {
* builder.headers.set('Authorization', 'Bearer <token>')
* }
* ```
*/
onBeforeRequest?: (input: {
request: Request;
requestBuilder: any;
envVariables: Record<string, string>;
}) => void | Promise<void> | undefined;
};
/** Migrate the configuration through a transform */
/** Configuration for the Api Reference */
export declare const apiReferenceConfigurationWithSourceSchema: ZodType<Omit<ApiReferenceConfiguration, 'url' | 'content'> & SourceConfiguration>;
/**
* User facing configuration that includes the document source configuration
*/
export type ApiReferenceConfigurationWithSource = Omit<z.infer<typeof apiReferenceConfigurationWithSourceSchema>, 'proxy' | 'spec' | 'authentication' | 'showToolbar'> & {
authentication?: AuthenticationConfiguration;
};
/**
* Configuration for a single config with multiple sources
* The configuration will be shared between the documents
*/
export type ApiReferenceConfigurationWithMultipleSources = ApiReferenceConfigurationWithSource & {
sources: SourceConfiguration[];
};
/** Configuration for multiple Api References */
export type AnyApiReferenceConfiguration = Partial<ApiReferenceConfigurationWithSource> | Partial<ApiReferenceConfigurationWithMultipleSources> | Partial<ApiReferenceConfigurationWithSource>[] | Partial<ApiReferenceConfigurationWithMultipleSources>[];
//# sourceMappingURL=api-reference-configuration.d.ts.map