import type { ILookerVersions, SpecItem, SpecList } from '@looker/sdk-codegen';
import { ApiModel } from '@looker/sdk-codegen';
import type { RunItValues } from '@looker/run-it';
export declare type StorageLocation = 'session' | 'local';
export interface IStorageValue {
    location: StorageLocation;
    value: string;
}
export declare type ApiSpecFetcher = (version: string, name: string) => Promise<string | RunItValues>;
export declare type ParsedSpec = ApiModel | undefined;
export interface RunItConfigurator {
    getStorage: (key: string, defaultValue?: string) => IStorageValue;
    setStorage(key: string, value: string, location: 'local' | 'session'): string;
    removeStorage(key: string): void;
}
export interface ILoadedSpecs {
    baseUrl: string;
    webUrl: string;
    headless: boolean;
    specs: SpecList;
    fetchResult: string;
}
export interface IAPIXConfig extends ILookerVersions {
    headless?: boolean;
}
export declare const fullify: (uri: string, baseUrl: string) => string;
export declare const funFetch: (version: string, name: string) => Promise<string>;
export declare const specUrlFetch: (url: string) => Promise<ParsedSpec>;
export declare const sdkSpecFetch: (spec: SpecItem, fetcher: ApiSpecFetcher) => Promise<ParsedSpec>;
export declare const fallbackFetch: (spec: SpecItem, fetcher: ApiSpecFetcher) => Promise<ParsedSpec>;
