import * as generatedApis from './apis/index'; import { Configuration, FetchAPI, Middleware } from './runtime'; export * from './runtime'; export * from './apis/index'; export * from './models/index'; type GeneratedExports = typeof generatedApis; type ApiConstructor = new (configuration: Configuration) => any; export interface FabricApiOptions { apiKey: string; baseId?: string; basePath?: string; middleware?: Middleware[]; fetchApi?: FetchAPI; } type ApiKeys = { [K in keyof GeneratedExports]: K extends `${string}Api` ? GeneratedExports[K] extends ApiConstructor ? K : never : never; }[keyof GeneratedExports]; type StripApiSuffix = T extends `${infer Name}Api` ? Name : T; type LowercaseFirst = T extends `${infer First}${infer Rest}` ? `${Lowercase}${Rest}` : T; type FabricApis = { [K in ApiKeys as LowercaseFirst>]: GeneratedExports[K] extends ApiConstructor ? InstanceType : never; }; export interface Fabric extends FabricApis { } export declare class Fabric { constructor(options: FabricApiOptions); }