import { Channel } from 'nice-grpc';
import { ISdkResponse } from '../common/types/sdk-response';
import { AddUserResponseModel, GetInboundUsersResponseModel } from './models';
import { IAddHttpUser, IAddShadowsocks2022User, IAddShadowsocksUser, IAddSocksUser, IAddTrojanUser, IAddVlessUser } from './interfaces';
import { RemoveUserResponseModel } from './models/remove-user/remove-user.response.model';
/**
 * Service for managing Xray inbound handlers and their users
 */
export declare class HandlerService {
    private readonly channel;
    private readonly client;
    constructor(channel: Channel);
    /**
     * Retrieves all users from a specified inbound handler.
     * This method fetches user information including their credentials and metadata from the Xray server.
     *
     * @param {string} tag - The tag identifying the inbound handler to query
     * @returns {Promise<ISdkResponse<GetInboundUsersResponseModel>>} A promise that resolves to:
     * - On success: An object with `isOk: true` and `data` containing an array of decoded user information
     * - On failure: An object with `isOk: false` and error details from HANDLER_ERRORS
     *
     * @example
     * ```typescript
     * const handler = new HandlerService(channel);
     * const response = await handler.getInboundUsers('Personal');
     *
     * if (response.isOk) {
     *   console.log(response.data.users); // Array of DecodedUser objects
     * } else {
     *   console.error(response.message); // Error message
     * }
     * ```
     */
    getInboundUsers(tag: string): Promise<ISdkResponse<GetInboundUsersResponseModel>>;
    /**
     * Adds a new Trojan user to a specified inbound handler.
     *
     * @param {IAddTrojanUser} data - The user data containing tag, username, password and level
     * @returns {Promise<ISdkResponse<AddUserResponseModel>>} A promise that resolves to:
     * - On success: An object with `isOk: true` and `data.success` indicating if user was added
     * - On failure: An object with `isOk: false` and error details from HANDLER_ERRORS
     */
    addTrojanUser(data: IAddTrojanUser): Promise<ISdkResponse<AddUserResponseModel>>;
    /**
     * Adds a new VLESS user to a specified inbound handler.
     *
     * @param {IAddVlessUser} data - The user data containing tag, username, UUID, flow and level
     * @returns {Promise<ISdkResponse<AddUserResponseModel>>} A promise that resolves to:
     * - On success: An object with `isOk: true` and `data.success` indicating if user was added
     * - On failure: An object with `isOk: false` and error details from HANDLER_ERRORS
     */
    addVlessUser(data: IAddVlessUser): Promise<ISdkResponse<AddUserResponseModel>>;
    /**
     * Adds a new Shadowsocks user to a specified inbound handler.
     *
     * @param {IAddShadowsocksUser} data - The user data containing tag, username, password, cipher type, IV check and level
     * @returns {Promise<ISdkResponse<AddUserResponseModel>>} A promise that resolves to:
     * - On success: An object with `isOk: true` and `data.success` indicating if user was added
     * - On failure: An object with `isOk: false` and error details from HANDLER_ERRORS
     */
    addShadowsocksUser(data: IAddShadowsocksUser): Promise<ISdkResponse<AddUserResponseModel>>;
    /**
     * Adds a new Shadowsocks 2022 user to a specified inbound handler.
     *
     * @param {IAddShadowsocks2022User} data - The user data containing tag, username, key and level
     * @returns {Promise<ISdkResponse<AddUserResponseModel>>} A promise that resolves to:
     * - On success: An object with `isOk: true` and `data.success` indicating if user was added
     * - On failure: An object with `isOk: false` and error details from HANDLER_ERRORS
     */
    addShadowsocks2022User(data: IAddShadowsocks2022User): Promise<ISdkResponse<AddUserResponseModel>>;
    /**
     * Adds a new SOCKS user to a specified inbound handler.
     *
     * @param {IAddSocksUser} data - The user data containing tag, username, SOCKS username, SOCKS password and level
     * @returns {Promise<ISdkResponse<AddUserResponseModel>>} A promise that resolves to:
     * - On success: An object with `isOk: true` and `data.success` indicating if user was added
     * - On failure: An object with `isOk: false` and error details from HANDLER_ERRORS
     */
    addSocksUser(data: IAddSocksUser): Promise<ISdkResponse<AddUserResponseModel>>;
    /**
     * Adds a new HTTP user to a specified inbound handler.
     *
     * @param {IAddHttpUser} data - The user data containing tag, username, HTTP username, HTTP password and level
     * @returns {Promise<ISdkResponse<AddUserResponseModel>>} A promise that resolves to:
     * - On success: An object with `isOk: true` and `data.success` indicating if user was added
     * - On failure: An object with `isOk: false` and error details from HANDLER_ERRORS
     */
    addHttpUser(data: IAddHttpUser): Promise<ISdkResponse<AddUserResponseModel>>;
    /**
     * Removes a user from a specified inbound handler.
     *
     * @param {string} tag - The tag identifying the inbound handler
     * @param {string} username - The username/email of the user to remove
     * @returns {Promise<ISdkResponse<RemoveUserResponseModel>>} A promise that resolves to:
     * - On success: An object with `isOk: true` and `data.success` indicating if user was removed
     * - On failure: An object with `isOk: false` and error details from HANDLER_ERRORS
     */
    removeUser(tag: string, username: string): Promise<ISdkResponse<RemoveUserResponseModel>>;
    /**
     * Gets the count of users in a specified inbound handler.
     *
     * @param {string} tag - The tag identifying the inbound handler
     * @returns {Promise<ISdkResponse<number>>} A promise that resolves to:
     * - On success: An object with `isOk: true` and `data` containing the user count
     * - On failure: An object with `isOk: false` and error details from HANDLER_ERRORS
     */
    getInboundUsersCount(tag: string): Promise<ISdkResponse<number>>;
}
//# sourceMappingURL=handler.service.d.ts.map