export interface CollectionInfo { name: string summary?: string version?: string authors?: string[] } export interface ProxyAuth { username?: string password?: string } export interface ProxyConfig { inherit?: boolean protocol?: string hostname?: string port?: string auth?: ProxyAuth bypassProxy?: string } export interface CollectionConfig { proxy?: ProxyConfig } export interface HeaderItem { name: string value: string disabled?: boolean } export interface VarItem { name: string value: string enabled?: boolean local?: boolean } export interface AuthConfig { type: string basic?: { username: string; password: string } bearer?: { token: string } apikey?: { key: string; value: string; placement: string } digest?: { username: string; password: string } ntlm?: { username: string; password: string; domain?: string } wsse?: { username: string; password: string } awsv4?: { accessKeyId: string secretAccessKey: string sessionToken?: string service?: string region?: string profileName?: string } oauth2?: Record } export interface CollectionRequestDefaults { auth?: AuthConfig headers?: HeaderItem[] script?: { req?: string; res?: string } tests?: string vars?: { req?: VarItem[]; res?: VarItem[] } } export interface OpenCollectionRoot { specVersion?: string info: CollectionInfo config?: CollectionConfig request?: CollectionRequestDefaults bundled?: boolean extensions?: { bruno?: { ignore?: string[] } } } export interface RequestInfo { name: string type: string seq?: number tags?: string[] } export interface ParamItem { name: string value: string type: 'query' | 'path' disabled?: boolean } export type BodyType = | 'json' | 'text' | 'xml' | 'sparql' | 'graphql' | 'form-urlencoded' | 'multipart-form' | 'file' | 'none' export interface FormField { name: string value: string enabled?: boolean type?: string } export interface GraphQLBody { query: string variables?: string } export interface BodyConfig { type: BodyType data?: string | FormField[] | GraphQLBody } export interface HttpConfig { method: string url: string params?: ParamItem[] headers?: HeaderItem[] body?: BodyConfig auth?: AuthConfig } export interface ScriptItem { type: 'before-request' | 'after-response' | 'tests' code: string } export interface AssertionItem { expression: string operator: string value?: string disabled?: boolean } export interface RuntimeConfig { scripts?: ScriptItem[] assertions?: AssertionItem[] vars?: { req?: VarItem[]; res?: VarItem[] } } export interface RequestSettings { encodeUrl?: boolean timeout?: number followRedirects?: boolean maxRedirects?: number } export interface RequestFile { info: RequestInfo http: HttpConfig runtime?: RuntimeConfig settings?: RequestSettings docs?: string } export interface FolderConfig { meta: { name: string; seq?: number } request?: CollectionRequestDefaults } export interface EnvVariable { name: string value: string enabled?: boolean secret?: boolean type?: string } export interface EnvironmentFile { name: string variables: EnvVariable[] } export interface ConversionWarning { file: string message: string type: 'duplicate-name' | 'skipped-request' | 'unsupported-field' | 'unknown' } export interface ConversionResult { requestsConverted: number environmentsConverted: number foldersConverted: number manifestGenerated: boolean files: string[] warnings: ConversionWarning[] }