/**
 * Auto-Generated Unified gRPC-Web Client for EchoFi
 * This client provides access to all backend services with proper TypeScript support
 *
 * Generated automatically from proto files - do not edit manually
 * To regenerate: npm run generate-client
 */
import * as grpcWeb from 'grpc-web';
import * as activityListening_history from './activity/listening_history_pb';
import * as activityListening_session from './activity/listening_session_pb';
import * as activityPlaylist from './activity/playlist_pb';
import * as activityRate_param from './activity/rate_param_pb';
import * as activityService from './activity/service_pb';
import * as activityUser_favorite from './activity/user_favorite_pb';
import * as activityUser_point_rate from './activity/user_point_rate_pb';
import * as activityUser_points from './activity/user_points_pb';
import * as authAccount from './auth/account_pb';
import * as authService from './auth/service_pb';
import * as authSession from './auth/session_pb';
import * as authVerification_token from './auth/verification_token_pb';
import * as musicAlbum from './music/album_pb';
import * as musicArtist from './music/artist_pb';
import * as musicGenre from './music/genre_pb';
import * as musicService from './music/service_pb';
import * as musicTrack from './music/track_pb';
import * as statsPoint_boost from './stats/point_boost_pb';
import * as statsService from './stats/service_pb';
import * as statsUser_statistics from './stats/user_statistics_pb';
import * as userService from './user/service_pb';
import * as userUser from './user/user_pb';
export interface EchoFiGrpcWebClientConfig {
    host?: string;
    port?: number;
    secure?: boolean;
    credentials?: {
        [index: string]: string;
    };
    options?: {
        [index: string]: any;
    };
}
export declare const Messages: {
    Activity: {
        Listening_history: typeof activityListening_history;
        Listening_session: typeof activityListening_session;
        Playlist: typeof activityPlaylist;
        Rate_param: typeof activityRate_param;
        Service: typeof activityService;
        User_favorite: typeof activityUser_favorite;
        User_point_rate: typeof activityUser_point_rate;
        User_points: typeof activityUser_points;
    };
    Auth: {
        Account: typeof authAccount;
        Service: typeof authService;
        Session: typeof authSession;
        Verification_token: typeof authVerification_token;
    };
    Music: {
        Album: typeof musicAlbum;
        Artist: typeof musicArtist;
        Genre: typeof musicGenre;
        Service: typeof musicService;
        Track: typeof musicTrack;
    };
    Stats: {
        Point_boost: typeof statsPoint_boost;
        Service: typeof statsService;
        User_statistics: typeof statsUser_statistics;
    };
    User: {
        Service: typeof userService;
        User: typeof userUser;
    };
};
/**
 * Unified EchoFi gRPC-Web Client
 * Provides access to all backend services with proper protobuf serialization
 */
export declare class EchoFiGrpcWebClient {
    private readonly config;
    private readonly hostname;
    private readonly _activityClient;
    private readonly _authClient;
    private readonly _musicClient;
    private readonly _statsClient;
    private readonly _userClient;
    constructor(config?: EchoFiGrpcWebClientConfig);
    /**
     * Initialize the client (for compatibility with existing code)
     */
    initialize(): Promise<void>;
    /**
     * Check if the client is connected (always true for gRPC-Web)
     */
    isConnected(): boolean;
    /**
     * Get the hostname being used
     */
    getHostname(): string;
    /**
     * Create metadata for authenticated requests
     */
    createAuthMetadata(sessionToken: string): grpcWeb.Metadata;
    /**
     * Create metadata with proper CORS headers
     */
    createCorsMetadata(additionalHeaders?: grpcWeb.Metadata): grpcWeb.Metadata;
    /**
     * GetListeningHistory - Enhanced method that accepts both request objects and JSON
     * @param requestOrData - Either a GetListeningHistoryRequest object or JSON data
     * @param metadata - Optional gRPC metadata
     */
    getListeningHistory(requestOrData: activityService.GetListeningHistoryRequest | {
        historyId: number;
    }, metadata?: grpcWeb.Metadata): Promise<activityService.GetListeningHistoryResponse>;
    /**
     * ListListeningHistory - Enhanced method that accepts both request objects and JSON
     * @param requestOrData - Either a ListListeningHistoryRequest object or JSON data
     * @param metadata - Optional gRPC metadata
     */
    listListeningHistory(requestOrData?: activityService.ListListeningHistoryRequest | {
        offset?: number;
        limit?: number;
        userId?: string;
        trackId?: number;
    }, metadata?: grpcWeb.Metadata): Promise<activityService.ListListeningHistoryResponse>;
    /**
     * GetUserFavorite - Enhanced method that accepts both request objects and JSON
     * @param requestOrData - Either a GetUserFavoriteRequest object or JSON data
     * @param metadata - Optional gRPC metadata
     */
    getUserFavorite(requestOrData: activityService.GetUserFavoriteRequest | {
        favoriteId: number;
    }, metadata?: grpcWeb.Metadata): Promise<activityService.GetUserFavoriteResponse>;
    /**
     * ListUserFavorites - Enhanced method that accepts both request objects and JSON
     * @param requestOrData - Either a ListUserFavoritesRequest object or JSON data
     * @param metadata - Optional gRPC metadata
     */
    listUserFavorites(requestOrData?: activityService.ListUserFavoritesRequest | {
        offset?: number;
        limit?: number;
        userId?: string;
    }, metadata?: grpcWeb.Metadata): Promise<activityService.ListUserFavoritesResponse>;
    /**
     * GetPlaylist - Enhanced method that accepts both request objects and JSON
     * @param requestOrData - Either a GetPlaylistRequest object or JSON data
     * @param metadata - Optional gRPC metadata
     */
    getPlaylist(requestOrData: activityService.GetPlaylistRequest | {
        playlistId: number;
    }, metadata?: grpcWeb.Metadata): Promise<activityService.GetPlaylistResponse>;
    /**
     * ListPlaylists - Enhanced method that accepts both request objects and JSON
     * @param requestOrData - Either a ListPlaylistsRequest object or JSON data
     * @param metadata - Optional gRPC metadata
     */
    listPlaylists(requestOrData?: activityService.ListPlaylistsRequest | {
        offset?: number;
        limit?: number;
        createdBy?: string;
        isPublic?: boolean;
    }, metadata?: grpcWeb.Metadata): Promise<activityService.ListPlaylistsResponse>;
    /**
     * ListPlaylistTracks - Enhanced method that accepts both request objects and JSON
     * @param requestOrData - Either a ListPlaylistTracksRequest object or JSON data
     * @param metadata - Optional gRPC metadata
     */
    listPlaylistTracks(requestOrData: activityService.ListPlaylistTracksRequest | {
        playlistId: number;
        offset?: number;
        limit?: number;
    }, metadata?: grpcWeb.Metadata): Promise<activityService.ListPlaylistTracksResponse>;
    /**
     * GetUserPointRate - Enhanced method that accepts both request objects and JSON
     * @param requestOrData - Either a GetUserPointRateRequest object or JSON data
     * @param metadata - Optional gRPC metadata
     */
    getUserPointRate(requestOrData: activityService.GetUserPointRateRequest | {
        userId: string;
    }, metadata?: grpcWeb.Metadata): Promise<activityService.GetUserPointRateResponse>;
    /**
     * ListUserPointRates - Enhanced method that accepts both request objects and JSON
     * @param requestOrData - Either a ListUserPointRatesRequest object or JSON data
     * @param metadata - Optional gRPC metadata
     */
    listUserPointRates(requestOrData?: activityService.ListUserPointRatesRequest | {
        offset?: number;
        limit?: number;
    }, metadata?: grpcWeb.Metadata): Promise<activityService.ListUserPointRatesResponse>;
    /**
     * UpdateUserPointRate - Enhanced method that accepts both request objects and JSON
     * @param requestOrData - Either a UpdateUserPointRateRequest object or JSON data
     * @param metadata - Optional gRPC metadata
     */
    updateUserPointRate(requestOrData: activityService.UpdateUserPointRateRequest | {
        userId: string;
    }, metadata?: grpcWeb.Metadata): Promise<activityService.UpdateUserPointRateResponse>;
    /**
     * GetRateParam - Enhanced method that accepts both request objects and JSON
     * @param requestOrData - Either a GetRateParamRequest object or JSON data
     * @param metadata - Optional gRPC metadata
     */
    getRateParam(requestOrData: activityService.GetRateParamRequest | {
        paramId: number;
    }, metadata?: grpcWeb.Metadata): Promise<activityService.GetRateParamResponse>;
    /**
     * ListRateParams - Enhanced method that accepts both request objects and JSON
     * @param requestOrData - Either a ListRateParamsRequest object or JSON data
     * @param metadata - Optional gRPC metadata
     */
    listRateParams(requestOrData?: activityService.ListRateParamsRequest | {
        offset?: number;
        limit?: number;
        isActive?: boolean;
    }, metadata?: grpcWeb.Metadata): Promise<activityService.ListRateParamsResponse>;
    /**
     * GetListeningSession - Enhanced method that accepts both request objects and JSON
     * @param requestOrData - Either a GetListeningSessionRequest object or JSON data
     * @param metadata - Optional gRPC metadata
     */
    getListeningSession(requestOrData: activityService.GetListeningSessionRequest | {
        id: string;
    }, metadata?: grpcWeb.Metadata): Promise<activityService.GetListeningSessionResponse>;
    /**
     * ListListeningSessions - Enhanced method that accepts both request objects and JSON
     * @param requestOrData - Either a ListListeningSessionsRequest object or JSON data
     * @param metadata - Optional gRPC metadata
     */
    listListeningSessions(requestOrData?: activityService.ListListeningSessionsRequest | {
        offset?: number;
        limit?: number;
        userId?: string;
        status?: string;
    }, metadata?: grpcWeb.Metadata): Promise<activityService.ListListeningSessionsResponse>;
    /**
     * GetUserPoints - Enhanced method that accepts both request objects and JSON
     * @param requestOrData - Either a GetUserPointsRequest object or JSON data
     * @param metadata - Optional gRPC metadata
     */
    getUserPoints(requestOrData: activityService.GetUserPointsRequest | {
        userId: string;
    }, metadata?: grpcWeb.Metadata): Promise<activityService.GetUserPointsResponse>;
    /**
     * ListUserPoints - Enhanced method that accepts both request objects and JSON
     * @param requestOrData - Either a ListUserPointsRequest object or JSON data
     * @param metadata - Optional gRPC metadata
     */
    listUserPoints(requestOrData?: activityService.ListUserPointsRequest | {
        offset?: number;
        limit?: number;
        status?: string;
    }, metadata?: grpcWeb.Metadata): Promise<activityService.ListUserPointsResponse>;
    /**
     * GetUnprocessedListeningRecords - Enhanced method that accepts both request objects and JSON
     * @param requestOrData - Either a GetUnprocessedListeningRecordsRequest object or JSON data
     * @param metadata - Optional gRPC metadata
     */
    getUnprocessedListeningRecords(requestOrData?: activityService.GetUnprocessedListeningRecordsRequest | {
        offset?: number;
        limit?: number;
    }, metadata?: grpcWeb.Metadata): Promise<activityService.GetUnprocessedListeningRecordsResponse>;
    /**
     * GetUnprocessedListeningDuration - Enhanced method that accepts both request objects and JSON
     * @param requestOrData - Either a GetUnprocessedListeningDurationRequest object or JSON data
     * @param metadata - Optional gRPC metadata
     */
    getUnprocessedListeningDuration(requestOrData?: activityService.GetUnprocessedListeningDurationRequest | {}, metadata?: grpcWeb.Metadata): Promise<activityService.GetUnprocessedListeningDurationResponse>;
    /**
     * GetSession - Enhanced method that accepts both request objects and JSON
     * @param requestOrData - Either a GetSessionRequest object or JSON data
     * @param metadata - Optional gRPC metadata
     */
    getSession(requestOrData: authService.GetSessionRequest | {
        sessionToken: string;
    }, metadata?: grpcWeb.Metadata): Promise<authService.GetSessionResponse>;
    /**
     * CreateSession - Enhanced method that accepts both request objects and JSON
     * @param requestOrData - Either a CreateSessionRequest object or JSON data
     * @param metadata - Optional gRPC metadata
     */
    createSession(requestOrData: authService.CreateSessionRequest | {
        session: any;
    }, metadata?: grpcWeb.Metadata): Promise<authService.CreateSessionResponse>;
    /**
     * DeleteSession - Enhanced method that accepts both request objects and JSON
     * @param requestOrData - Either a DeleteSessionRequest object or JSON data
     * @param metadata - Optional gRPC metadata
     */
    deleteSession(requestOrData: authService.DeleteSessionRequest | {
        sessionToken: string;
    }, metadata?: grpcWeb.Metadata): Promise<authService.DeleteSessionResponse>;
    /**
     * GetArtist - Enhanced method that accepts both request objects and JSON
     * @param requestOrData - Either a GetArtistRequest object or JSON data
     * @param metadata - Optional gRPC metadata
     */
    getArtist(requestOrData: musicService.GetArtistRequest | {
        artistId: number;
    }, metadata?: grpcWeb.Metadata): Promise<musicService.GetArtistResponse>;
    /**
     * ListArtists - Enhanced method that accepts both request objects and JSON
     * @param requestOrData - Either a ListArtistsRequest object or JSON data
     * @param metadata - Optional gRPC metadata
     */
    listArtists(requestOrData?: musicService.ListArtistsRequest | {
        offset?: number;
        limit?: number;
    }, metadata?: grpcWeb.Metadata): Promise<musicService.ListArtistsResponse>;
    /**
     * GetAlbum - Enhanced method that accepts both request objects and JSON
     * @param requestOrData - Either a GetAlbumRequest object or JSON data
     * @param metadata - Optional gRPC metadata
     */
    getAlbum(requestOrData: musicService.GetAlbumRequest | {
        albumId: number;
    }, metadata?: grpcWeb.Metadata): Promise<musicService.GetAlbumResponse>;
    /**
     * ListAlbums - Enhanced method that accepts both request objects and JSON
     * @param requestOrData - Either a ListAlbumsRequest object or JSON data
     * @param metadata - Optional gRPC metadata
     */
    listAlbums(requestOrData?: musicService.ListAlbumsRequest | {
        offset?: number;
        limit?: number;
        artistId?: number;
    }, metadata?: grpcWeb.Metadata): Promise<musicService.ListAlbumsResponse>;
    /**
     * GetTrack - Enhanced method that accepts both request objects and JSON
     * @param requestOrData - Either a GetTrackRequest object or JSON data
     * @param metadata - Optional gRPC metadata
     */
    getTrack(requestOrData: musicService.GetTrackRequest | {
        trackId: number;
    }, metadata?: grpcWeb.Metadata): Promise<musicService.GetTrackResponse>;
    /**
     * ListTracks - Enhanced method that accepts both request objects and JSON
     * @param requestOrData - Either a ListTracksRequest object or JSON data
     * @param metadata - Optional gRPC metadata
     */
    listTracks(requestOrData?: musicService.ListTracksRequest | {
        offset?: number;
        limit?: number;
        artistId?: number;
        albumId?: number;
        genreId?: number;
    }, metadata?: grpcWeb.Metadata): Promise<musicService.ListTracksResponse>;
    /**
     * GetGenre - Enhanced method that accepts both request objects and JSON
     * @param requestOrData - Either a GetGenreRequest object or JSON data
     * @param metadata - Optional gRPC metadata
     */
    getGenre(requestOrData: musicService.GetGenreRequest | {
        genreId: number;
    }, metadata?: grpcWeb.Metadata): Promise<musicService.GetGenreResponse>;
    /**
     * ListGenres - Enhanced method that accepts both request objects and JSON
     * @param requestOrData - Either a ListGenresRequest object or JSON data
     * @param metadata - Optional gRPC metadata
     */
    listGenres(requestOrData?: musicService.ListGenresRequest | {
        offset?: number;
        limit?: number;
    }, metadata?: grpcWeb.Metadata): Promise<musicService.ListGenresResponse>;
    /**
     * GetUserStatistics - Enhanced method that accepts both request objects and JSON
     * @param requestOrData - Either a GetUserStatisticsRequest object or JSON data
     * @param metadata - Optional gRPC metadata
     */
    getUserStatistics(requestOrData: statsService.GetUserStatisticsRequest | {
        userId: string;
    }, metadata?: grpcWeb.Metadata): Promise<statsService.GetUserStatisticsResponse>;
    /**
     * ListUserStatistics - Enhanced method that accepts both request objects and JSON
     * @param requestOrData - Either a ListUserStatisticsRequest object or JSON data
     * @param metadata - Optional gRPC metadata
     */
    listUserStatistics(requestOrData?: statsService.ListUserStatisticsRequest | {
        offset?: number;
        limit?: number;
    }, metadata?: grpcWeb.Metadata): Promise<statsService.ListUserStatisticsResponse>;
    /**
     * GetPointBoost - Enhanced method that accepts both request objects and JSON
     * @param requestOrData - Either a GetPointBoostRequest object or JSON data
     * @param metadata - Optional gRPC metadata
     */
    getPointBoost(requestOrData: statsService.GetPointBoostRequest | {
        boostId: number;
    }, metadata?: grpcWeb.Metadata): Promise<statsService.GetPointBoostResponse>;
    /**
     * ListPointBoosts - Enhanced method that accepts both request objects and JSON
     * @param requestOrData - Either a ListPointBoostsRequest object or JSON data
     * @param metadata - Optional gRPC metadata
     */
    listPointBoosts(requestOrData?: statsService.ListPointBoostsRequest | {
        offset?: number;
        limit?: number;
        userId?: string;
        isActive?: boolean;
    }, metadata?: grpcWeb.Metadata): Promise<statsService.ListPointBoostsResponse>;
    /**
     * GetUser - Enhanced method that accepts both request objects and JSON
     * @param requestOrData - Either a GetUserRequest object or JSON data
     * @param metadata - Optional gRPC metadata
     */
    getUser(requestOrData: userService.GetUserRequest | {
        id: string;
    }, metadata?: grpcWeb.Metadata): Promise<userService.GetUserResponse>;
    /**
     * ListUsers - Enhanced method that accepts both request objects and JSON
     * @param requestOrData - Either a ListUsersRequest object or JSON data
     * @param metadata - Optional gRPC metadata
     */
    listUsers(requestOrData?: userService.ListUsersRequest | {
        offset?: number;
        limit?: number;
    }, metadata?: grpcWeb.Metadata): Promise<userService.ListUsersResponse>;
}
export declare function createEchoFiGrpcWebClient(config?: EchoFiGrpcWebClientConfig): EchoFiGrpcWebClient;
export default EchoFiGrpcWebClient;
//# sourceMappingURL=unified-client.d.ts.map