import { Readable } from "stream";
import { NetsuiteOptions, NetsuiteQueryResult, NetsuiteRequestOptions, NetsuiteResponse } from "./types.js";
export default class NetsuiteApiClient {
    consumer_key: string;
    consumer_secret_key: string;
    token: string;
    token_secret: string;
    version: string;
    algorithm: string;
    realm: string;
    base_url?: string;
    constructor(options: NetsuiteOptions);
    /**
     * Retrieve the Authorization Header
     * @returns
     * @param url
     * @param method
     */
    getAuthorizationHeader(url: string, method: string): {
        [key: string]: string;
    };
    /**
     * Run a raw REST API request
     * @param opts
     * @returns
     */
    request(opts: NetsuiteRequestOptions): Promise<NetsuiteResponse>;
    /**
     * Connect !
     * @returns
     */
    connect(): Promise<NetsuiteResponse>;
    /**
     * Run SuiteQL query
     * @param query
     * @param limit
     * @param offset
     * @returns
     */
    query(query: string, limit?: number, offset?: number): Promise<NetsuiteQueryResult>;
    /**
     * Run and then combine all pages of a query
     * @param query
     * @param limit
     * @returns
     */
    queryAll(query: string, limit?: number): Readable;
}
