import { RpcBaseData } from '../rpc-base';
/**
 * Azure request RPC call name and version.
 */
export declare class RpcAzureRequestKey {
    static command: string;
    static version: string;
}
/**
 * Azure response RPC call name and version.
 */
export declare class RpcAzureResponseKey {
    static command: string;
    static version: string;
}
/**
 * Identifies the Azure operation type to perform
 */
export declare enum RpcAzureOperationType {
    /**
     * Get AAD status and information
     */
    GetAadStatus = 0,
    /**
     * Open register AAD Dialog
     */
    OpenAzureDialog = 1,
    /**
     * Get AAD user token
     */
    GetAadToken = 2,
    /**
     * Get AAD user token for Azure AD Graph API
     */
    GetAadGraphToken = 3,
    /**
     * Sign in to Azure.
     */
    SignIn = 4,
    /**
     * Sign out of Azure.
     */
    SignOut = 5,
    /**
     * Sign in with a different account
     */
    SwitchAccounts = 6,
    /**
     * Check if user is signed in.
     */
    CheckUserSignedIn = 7,
    /**
     * Get AAD user token for Microsoft Graph API
     */
    GetMicrosoftGraphToken = 8
}
/**
 * Azure Manager operation/action RPC message.
 */
export interface RpcAzureOperation extends RpcBaseData {
    /**
     * Request specific Id to track completion.
     */
    requestId: string;
    /**
     * Type of Azure operation to perform
     */
    operation: RpcAzureOperationType;
    /**
     * The set of permissions for which the token has to be requested.
     */
    tokenScopes?: string[];
}
/**
 * Azure RPC app info.
 */
export interface RpcAzureAppInfo {
    /**
     * Logged in AAD user name
     */
    aadUserName: string;
    /**
     * Application id
     */
    appId: string;
    /**
     * Tenant id
     */
    tenantId: string;
    /**
     * Application name in AAD
     */
    appDisplayName: string;
    /**
     * Register AAD application verify url
     */
    appVerifyAddress: string;
    /**
     * Application token
     */
    token: string;
}
/**
 * Azure operation/action RPC message result.
 */
export interface RpcAzureOperationResult {
    /**
     * Request specific Id to track completion.
     */
    requestId: string;
    /**
     * Application information
     */
    appInfo: RpcAzureAppInfo;
    /**
     * Error if any
     */
    error?: any;
}
