/// <reference types="node" />
import { ProvisioningProfileClient, ProvisioningProfileDto, ProvisioningProfileType, ProvisioningProfileUpdateDto } from '../clients/metaApi/provisioningProfile.client';
/**
 * Implements a provisioning profile entity
 */
export default class ProvisioningProfile {
    private _data;
    private _provisioningProfileClient;
    /**
     * Constructs a provisioning profile entity
     * @param data provisioning profile data
     * @param provisioningProfileClient provisioning profile REST API client
     */
    constructor(data: ProvisioningProfileDto, provisioningProfileClient: ProvisioningProfileClient);
    /**
     * Returns profile id
     * @return profile id
     */
    get id(): string;
    /**
     * Returns profile name
     * @return profile name
     */
    get name(): string;
    /**
     * Returns profile version. Possible values are 4 and 5
     * @return {Number} profile version
     */
    get version(): number;
    /**
     * Returns profile status. Possible values are new and active
     * @return profile status
     */
    get status(): string;
    /**
     * Returns broker timezone name from Time Zone Database
     * @return broker timezone name
     */
    get brokerTimezone(): string;
    /**
     * Returns broker DST timezone name from Time Zone Database
     * @return broker DST switch timezone name
     */
    get brokerDSTSwitchTimezone(): string;
    /**
     * Returns provisioning profile type
     * @return provisioning profile type
     */
    get type(): ProvisioningProfileType;
    /**
     * Reloads provisioning profile from API
     * @return promise resolving when provisioning profile is updated
     */
    reload(): Promise<any>;
    /**
     * Removes provisioning profile. The current object instance should be discarded after returned promise resolves.
     * @return promise resolving when provisioning profile is removed
     */
    remove(): Promise<any>;
    /**
     * Uploads a file to provisioning profile.
     * @param fileName name of the file to upload. Allowed values are servers.dat for MT5 profile, broker.srv for
     * MT4 profile
     * @param file path to a file to upload or buffer containing file contents
     * @return promise which resolves when the file was uploaded
     */
    uploadFile(fileName: string, file: string | Buffer): Promise<any>;
    /**
     * Updates provisioning profile
     * @param profile provisioning profile update
     * @return promise resolving when provisioning profile is updated
     */
    update(profile: ProvisioningProfileUpdateDto): Promise<any>;
}
