import { Client, ClientOptions } from '@microsoft/teams.common';
import { CloudEnvironment } from '../../auth/cloud-environment.mjs';
import { TokenResponse } from '../../models/token/token-response.mjs';
import { TokenStatus } from '../../models/token/token-status.mjs';
import { ApiClientSettings } from '../api-client-settings.mjs';
import { UserTokenClient, GetUserTokenParams, GetUserAADTokenParams, GetUserTokenStatusParams, SignOutUserParams, ExchangeUserTokenParams } from './token.mjs';
export { USER_TOKEN_ENDPOINTS } from './token.mjs';
import '../../models/channel-id.mjs';
import '../../auth/credentials.mjs';
import '../../models/agentic-identity.mjs';
import '../../models/token-exchange/token-exchange-request.mjs';

declare class UserClient {
    get http(): Client;
    set http(v: Client);
    /**
     * @deprecated Use the flattened methods on `UserClient` instead
     * (e.g. `users.getToken(...)`). This grouped accessor will be removed
     * in a future release.
     */
    get token(): UserTokenClient;
    protected _http: Client;
    protected _token: UserTokenClient;
    protected _apiClientSettings: Partial<ApiClientSettings>;
    constructor(options?: Client | ClientOptions, apiClientSettings?: Partial<ApiClientSettings>, cloud?: CloudEnvironment);
    /**
     * Get a user token for the given connection.
     */
    getToken(params: GetUserTokenParams): Promise<TokenResponse>;
    /**
     * Get AAD tokens for the given connection and resource urls.
     */
    getAadTokens(params: GetUserAADTokenParams): Promise<Record<string, TokenResponse>>;
    /**
     * Get the token status for a user.
     */
    getTokenStatus(params: GetUserTokenStatusParams): Promise<TokenStatus[]>;
    /**
     * Sign a user out of the given connection.
     */
    signOut(params: SignOutUserParams): Promise<void>;
    /**
     * Exchange a user token for the given connection.
     */
    exchangeToken(params: ExchangeUserTokenParams): Promise<TokenResponse>;
}

export { ExchangeUserTokenParams, GetUserAADTokenParams, GetUserTokenParams, GetUserTokenStatusParams, SignOutUserParams, UserClient, UserTokenClient };
