import type { ListedProfileDetails } from '../profile/profile-resolver.js'; import type { TenantSelectorType } from '../types/http-tenants.js'; export type ProfileIndexLocale = 'cs' | 'en'; interface ProfileIndexI18n { title: string; subtitle: string; noscript: string; profileLabel: string; endpointLabel: string; apiEndpointLabel: string; sseDeprecatedLabel: string; apiEndpointDefaultTag: string; apiEndpointVariableLabel: string; apiEndpointUnavailableInline: string; apiEndpointSourceEnv: string; apiEndpointSourceDefault: string; apiEndpointEnvNotSet: string; apiEndpointUnavailable: string; envVarsLabel: string; envNote: string; noEnvVars: string; noDescription: string; noProfiles: string; copy: string; copied: string; copyFailed: string; snippetLabels: { minimal: string; vscode: string; cursor: string; claude: string; gemini: string; codex: string; jetbrains: string; modeRemote: string; modeLocal: string; }; authLabels: { oauth: string; bearer: string; query: string; customHeader: string; none: string; }; authSectionLabel: string; authEnvVarsLabel: string; authEnvVarsNone: string; authHeaderPrefix: string; authQueryPrefix: string; tenantSectionLabel: string; tenantsAvailableLabel: string; tenantHeaderLabel: string; tenantSelectorLabel: string; tenantMaskNote: string; tenantPickerScopeLabel: string; tenantProfileDefaultLabel: string; tenantProfileDefaultNote: string; } interface ProfileIndexSnippet { key: string; label: string; content: string; authKey: string; mode: 'remote' | 'local'; format: 'json' | 'cli' | 'toml'; supportsCustomHeaders: boolean; supportsTenantHeaders: boolean; } interface ProfileIndexTab { key: string; label: string; } export interface ProfileIndexTenantSummary { tenantsEnabled: boolean; selectionHeaderName: 'X-Mcp4-Tenant-Id'; tenants: Array<{ tenantId: string; selectorType: TenantSelectorType; selectorDisplay: string; }>; } export interface ProfileIndexSourceProfile extends ListedProfileDetails { tenantSummary?: ProfileIndexTenantSummary; } interface ProfileIndexProfile extends ListedProfileDetails { mcpUrl: string; sseUrl: string; apiEndpoint: string | null; apiEndpointDefaultValue: string | null; apiEndpointSource: 'env' | 'default' | 'env-unset' | 'unavailable'; apiEndpointEnvVar: string | null; snippets: ProfileIndexSnippet[]; authTabs: ProfileIndexTab[]; modeTabs: ProfileIndexTab[]; tenantSummary?: ProfileIndexTenantSummary; } export interface ProfileIndexPayload { profiles: ProfileIndexProfile[]; origin: string; } export declare function parseAcceptLanguage(headerValue?: string): ProfileIndexLocale; export declare function loadProfileIndexTemplate(): Promise; export declare function resolveTemplateRoot(startDir: string, existsSyncFn?: (path: string) => boolean): string; export declare function safeJsonForHtml(value: unknown): string; export declare function renderTemplate(template: string, replacements: Record): string; export declare function buildProfileIndexI18n(locale: ProfileIndexLocale): ProfileIndexI18n; export declare function buildProfileIndexPayload(profiles: ProfileIndexSourceProfile[], origin: string, locale: ProfileIndexLocale): { payload: ProfileIndexPayload; templateData: Record; }; declare function resolveApiEndpoint(profile: ListedProfileDetails): { value: string | null; source: 'env' | 'default' | 'env-unset' | 'unavailable'; envVar: string | null; }; export declare function renderProfileIndexHtml(template: string, templateData: Record, nonce: string): string; declare function buildInputs(envVars: string[]): Array<{ id: string; description: string; }>; declare function buildEnvValue(name: string, inputMap: Map, useInput: boolean, mode: 'vscode' | 'cursor' | 'jetbrains' | 'cli'): string; declare function buildInputsBlock(inputs: Array<{ id: string; description: string; }>, indent: string): string[]; export declare const __test__: { buildInputs: typeof buildInputs; buildInputsBlock: typeof buildInputsBlock; buildEnvValue: typeof buildEnvValue; buildProfileIndexI18n: typeof buildProfileIndexI18n; resolveApiEndpoint: typeof resolveApiEndpoint; renderTemplate: typeof renderTemplate; safeJsonForHtml: typeof safeJsonForHtml; }; export {}; //# sourceMappingURL=profile-index.d.ts.map