import { RequestPromiseOptions } from "request-promise"; import { UriOptions } from "request"; import { Log } from "@uk/log"; export interface QContext { method?: "GET" | "POST"; apiMethod?: string; body?: TBody; query?: TQuery; } export declare type Query = RequestPromiseOptions & UriOptions; declare enum LogLevel { INFO = 1, DEBUG = 2 } export interface PosterOptions { logLevel?: LogLevel; } export declare abstract class BaseApiRoute { protected readonly token: string; protected options?: PosterOptions | undefined; protected static readonly urlPrefix = "https://joinposter.com/api"; static route: string; log: Log; constructor(token: string, options?: PosterOptions | undefined); protected formateDate(date?: Date): any; protected queryRunner(ctx: QContext): Promise; } export declare function ApiMethod(): (target: any, propertyKey: string, descriptor: PropertyDescriptor) => void; export declare function Context(): (target: any, propertyKey: string | symbol, ctxIndex: number) => void; export declare function CBody(): (target: any, propertyKey: string | symbol, bodyIndex: number) => void; export {};