import { AxiosInstance, AxiosResponse } from "axios"; export interface HcloudLogger { info(msg: string, ...args: any): void; debug(msg: string, ...args: any): void; warn(msg: string, ...args: any): void; error(msg: string, ...args: any): void; } export type MaybeRaw = R extends true ? AxiosResponse : T; export interface Options { server: string; auditor?: { queue?: { executionInterval?: number; }; }; agent?: { server: string; }; panel?: { server: string; }; logger?: HcloudLogger; } export default abstract class Base { protected options: Options; protected axios: AxiosInstance; constructor(options: Options, axios: AxiosInstance); protected abstract getEndpoint(endpoint: string): string; protected get logger(): HcloudLogger | undefined; }