export { ApiError } from "../../../lib/api-error.js";
import { type BaseTransaction, type ChannelInfo, type DirectMessageParams, type FollowTransaction, type LikeInfo, type LikesResponse, type MessagesResponse, type PostResponse, type PostsParams, type PostsResponse, type SearchParams, Timeframe, type UnfollowTransaction } from "bmap-api-types";
export declare const apiClient: {
    posts: {
        search: (params: SearchParams) => Promise<PostsResponse>;
        byBapId: (params: PostsParams & {
            bapId: string;
        }) => Promise<PostsResponse>;
        byAddress: (params: PostsParams & {
            address: string;
        }) => Promise<PostsResponse>;
        single: (txid: string) => Promise<PostResponse>;
        replies: (txid: string, page?: number, limit?: number) => Promise<PostsResponse>;
        trending: (timeframe?: Timeframe, limit?: number) => Promise<PostsResponse>;
    };
    transactions: {
        single: (txid: string) => Promise<BaseTransaction>;
        follow: (txid: string) => Promise<FollowTransaction>;
        unfollow: (txid: string) => Promise<UnfollowTransaction>;
    };
    messages: {
        direct: (params: DirectMessageParams) => Promise<unknown>;
        channel: (channelId: string, page?: number, limit?: number) => Promise<MessagesResponse>;
    };
    likes: {
        forPost: (txid: string) => Promise<LikeInfo>;
        byUser: (bapId: string, page?: number, limit?: number) => Promise<LikesResponse>;
    };
    identity: {
        search: (query: string, limit?: number) => Promise<unknown>;
        byBapId: (bapId: string) => Promise<unknown>;
    };
    channels: {
        list: () => Promise<ChannelInfo[]>;
        single: (channelId: string) => Promise<unknown>;
    };
    friends: {
        byBapId: (bapId: string) => Promise<unknown>;
        accept: (bapId: string) => Promise<any>;
        reject: (bapId: string) => Promise<any>;
    };
};
export declare function useApiClient(): {
    posts: {
        search: (params: SearchParams) => Promise<PostsResponse>;
        byBapId: (params: PostsParams & {
            bapId: string;
        }) => Promise<PostsResponse>;
        byAddress: (params: PostsParams & {
            address: string;
        }) => Promise<PostsResponse>;
        single: (txid: string) => Promise<PostResponse>;
        replies: (txid: string, page?: number, limit?: number) => Promise<PostsResponse>;
        trending: (timeframe?: Timeframe, limit?: number) => Promise<PostsResponse>;
    };
    transactions: {
        single: (txid: string) => Promise<BaseTransaction>;
        follow: (txid: string) => Promise<FollowTransaction>;
        unfollow: (txid: string) => Promise<UnfollowTransaction>;
    };
    messages: {
        direct: (params: DirectMessageParams) => Promise<unknown>;
        channel: (channelId: string, page?: number, limit?: number) => Promise<MessagesResponse>;
    };
    likes: {
        forPost: (txid: string) => Promise<LikeInfo>;
        byUser: (bapId: string, page?: number, limit?: number) => Promise<LikesResponse>;
    };
    identity: {
        search: (query: string, limit?: number) => Promise<unknown>;
        byBapId: (bapId: string) => Promise<unknown>;
    };
    channels: {
        list: () => Promise<ChannelInfo[]>;
        single: (channelId: string) => Promise<unknown>;
    };
    friends: {
        byBapId: (bapId: string) => Promise<unknown>;
        accept: (bapId: string) => Promise<any>;
        reject: (bapId: string) => Promise<any>;
    };
};
//# sourceMappingURL=useApiClient.d.ts.map