import type { Params } from 'pinejs-client-core';
import { PinejsClientCore } from 'pinejs-client-core';
import type BalenaRequest from 'balena-request';
import type { BalenaRequestOptions } from 'balena-request';
import type { BalenaModel } from './types/models';
type BalenaRequestSend = ReturnType<(typeof BalenaRequest)['getRequest']>['send'];
interface BackendParams {
    apiUrl: string;
    apiVersion: string;
    apiKey?: string;
    request: {
        send: BalenaRequestSend;
    };
    auth: import('balena-auth').default;
}
/**
 * @class
 * @classdesc A PineJS Client subclass to communicate with balena.
 * @private
 *
 * @description
 * This subclass makes use of the [balena-request](https://github.com/balena-io-modules/balena-request) project.
 */
export declare class PinejsClient extends PinejsClientCore<BalenaModel> {
    backendParams: BackendParams;
    API_URL: string;
    API_VERSION: string;
    constructor(params: Params, backendParams: BackendParams);
    /**
     * @summary Perform a network request to balena.
     * @method
     * @private
     *
     * @param {Object} options - request options
     * @returns {Promise<any>} response body
     *
     * @todo Implement caching support.
     */
    _request(options: BalenaRequestOptions & {
        method: string;
        anonymous?: unknown;
    }): Promise<any>;
}
export type PineClient = PinejsClientCore<BalenaModel>;
export {};
