/**
 * Alpaca Broker API
 * Open brokerage accounts, enable commission-free trading, and manage the ongoing user experience with Alpaca Broker API
 *
 * The version of the OpenAPI document: 1.0.0
 *
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */
/// <reference types="node" />
import http from 'http';
import { DocumentUpload } from '../model/documentUpload';
import { InlineResponse2003 } from '../model/inlineResponse2003';
import { Authentication, Interceptor } from '../model/models';
import { HttpBasicAuth } from '../model/models';
export declare enum DocumentsApiApiKeys {
}
export declare class DocumentsApi {
    protected _basePath: string;
    protected _defaultHeaders: any;
    protected _useQuerystring: boolean;
    protected authentications: {
        default: Authentication;
        BasicAuth: HttpBasicAuth;
    };
    protected interceptors: Interceptor[];
    constructor(basePath?: string);
    constructor(username: string, password: string, basePath?: string);
    set useQuerystring(value: boolean);
    set basePath(basePath: string);
    set defaultHeaders(defaultHeaders: any);
    get defaultHeaders(): any;
    get basePath(): string;
    setDefaultAuthentication(auth: Authentication): void;
    setApiKey(key: DocumentsApiApiKeys, value: string): void;
    set username(username: string);
    set password(password: string);
    addInterceptor(interceptor: Interceptor): void;
    /**
     * The operation returns a pre-signed downloadable link as a redirect with HTTP status code 301 if one is found.
     * @summary Download a document file directly
     * @param documentId
     */
    documentsDocumentIdGet(documentId: string, options?: {
        headers: {
            [name: string]: string;
        };
    }): Promise<{
        response: http.IncomingMessage;
        body?: any;
    }>;
    /**
     * The operation returns a pre-signed downloadable link as a redirect with HTTP status code 301 if one is found.
     * @summary Download a document file that belongs to an account.
     * @param accountId Account identifier.
     * @param documentId
     */
    getDocumentDownload(accountId: string, documentId: string, options?: {
        headers: {
            [name: string]: string;
        };
    }): Promise<{
        response: http.IncomingMessage;
        body?: any;
    }>;
    /**
     * You can query account documents such as monthly  statements and trade confirms under an account.
     * @summary Return a list of account documents.
     * @param accountId Account identifier.
     * @param startDate optional date value to filter the list (inclusive).
     * @param endDate optional date value to filter the list (inclusive).
     */
    getDocuments(accountId: string, startDate?: string, endDate?: string, options?: {
        headers: {
            [name: string]: string;
        };
    }): Promise<{
        response: http.IncomingMessage;
        body: Array<InlineResponse2003>;
    }>;
    /**
     *
     * @summary Upload a document to an already existing account
     * @param accountId Account identifier.
     * @param documentUpload
     */
    postDocumentUpload(accountId: string, documentUpload: Array<DocumentUpload>, options?: {
        headers: {
            [name: string]: string;
        };
    }): Promise<{
        response: http.IncomingMessage;
        body?: any;
    }>;
}
