import { Resource } from "./resource";
import { CancelToken } from "axios";
/**
 * Define JSON type
 */
export declare type JsonArray = Array<string | number | boolean | Date | JsonDict | JsonArray>;
export interface JsonDict {
    [key: string]: string | number | boolean | Date | null | JsonDict | JsonArray;
}
export declare type Json = JsonDict | JsonDict[];
/**
 * Services shared interfaces.
 */
export interface StoreUserAddon {
    userId: string;
}
export interface APIUserAddon {
    user_id: string;
}
export declare abstract class UserAddon extends Resource {
    /**
     * The user's ID this report belongs to.
     */
    userId: string;
    constructor(userId: string);
}
export declare type Optional<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>>;
export interface Config {
    cancelToken?: CancelToken;
    /**
     * The request timeout in milliseconds.
     */
    timeout?: number;
}
export interface PaginatedResponse<T> {
    count: number;
    results: T[];
    next: string | null;
    previous: string | null;
}
export declare type HTMLText = string;
