import { AuthData } from "../interfaces/auth/authdata";
import { ISubAccount } from "../interfaces/subaccount";
import { CustomValue } from "./subaccounts.customvalues";
import { CustomField } from "./subaccounts.customfields";
import { Tag } from "./contacts.tags";
interface SearchTask {
    contactId?: string;
    completed?: boolean;
    assignedTo: string[];
    query?: string;
    limit?: number;
    skip?: number;
    businessId?: string;
}
export declare class SubAccount {
    private authData?;
    customValues: CustomValue;
    customFields: CustomField;
    tags: Tag;
    /**
     * Endpoints For Subaccounts
     * https://highlevel.stoplight.io/docs/integrations/e283eac258a96-sub-account-formerly-location-api
     */
    constructor(authData?: AuthData);
    /**
     * Get Subaccount
     * https://highlevel.stoplight.io/docs/integrations/d777490312af4-get-sub-account-formerly-location
     * @param locationId
     */
    get(locationId: string): Promise<ISubAccount>;
    /**
     * Get all timezones
     * @param locationId
     * @returns
     */
    getTimezones(locationId: string): Promise<any>;
    /**
     * Search for tasks
     * @param locationId
     * @returns
     */
    searchTask(locationId: string, search: SearchTask): Promise<any>;
    /**
     * Search for subaccount
     * Documentation - https://highlevel.stoplight.io/docs/integrations/12f3fb56990d3-search
     * @param companyId
     * @param email
     * @param limit
     * @param order
     * @param skip
     * @returns
     */
    search(limit: number | undefined, order: 'asc' | 'desc', skip: 0, companyId?: string, email?: string): Promise<ISubAccount[]>;
    /**
     * Create a new Sub-Account (Formerly Location) based on the data provided
     * @param subaccount
     * @returns
     */
    post(subaccount: ISubAccount): Promise<ISubAccount>;
    /**
     * Update a Sub-Account (Formerly Location) based on the data provided
     * @param locationId
     * @param subaccount
     * @returns
     */
    update(locationId: string, subaccount: ISubAccount): Promise<ISubAccount>;
    /**
     * Delete a Sub-Account (Formerly Location) from the Agency
     * @param locationId
     * @param deleteTwilioAccount
     * @returns
     */
    remove(locationId: string, deleteTwilioAccount: boolean): Promise<{
        success: boolean;
        message: string;
    }>;
}
export {};
