import { AuthManager } from '../auth/AuthManager';
import { VppAccountResponse, AddVppAccountRequest, AddVppAccountResponse, VppSyncResponse, VppAccountDetail, VppFailureResponse, VppSyncStatusResponse, SyncVppAccountRequest } from './types';
export declare class VppAPI {
    private readonly baseUrl;
    private readonly authManager;
    private readonly accountsServer;
    constructor(baseUrl: string, authManager: AuthManager, accountsServer: string);
    private getHeaders;
    /**
     * Get details of all available/added location tokens
     */
    getAllVppAccounts(): Promise<VppAccountResponse>;
    /**
     * Add a new location token (VPP token)
     */
    addVppAccount(request: AddVppAccountRequest): Promise<AddVppAccountResponse>;
    /**
     * Remove all VPP accounts and their associated apps
     */
    removeAllVppAccounts(): Promise<void>;
    /**
     * Get sync status of all VPP accounts
     */
    getAllVppSyncStatus(): Promise<VppSyncResponse>;
    /**
     * Sync all VPP accounts
     */
    syncAllVppAccounts(): Promise<void>;
    /**
     * Get details of a specific VPP account
     */
    getVppAccount(vppId: string | number): Promise<VppAccountDetail>;
    /**
     * Modify a VPP account
     */
    modifyVppAccount(vppId: string | number, request: AddVppAccountRequest): Promise<void>;
    /**
     * Remove a specific VPP account and its associated apps
     */
    removeVppAccount(vppId: string | number): Promise<void>;
    /**
     * Get failure details for apps that failed to sync
     */
    getVppFailureDetails(vppId: string | number): Promise<VppFailureResponse>;
    /**
     * Get sync status of a specific VPP account
     */
    getVppSyncStatus(vppId: string | number): Promise<VppSyncStatusResponse>;
    /**
     * Sync a specific VPP account
     */
    syncVppAccount(vppId: string | number, request: SyncVppAccountRequest): Promise<void>;
}
