import { type AxiosInstance, type AxiosResponse } from "axios";
import { FdoBusiness, FdoPermissionRule, FdoRestaurant, FdoRestaurantSetting, type FdoUser, type FdoPublicSetting } from "@feedmepos/core/entity";
export interface PaginatedBusinessesResponse {
    meta: {
        skip: number;
        limit: number;
        sortBy: string;
        search: string;
        descending: boolean;
        totalResources: number;
        totalPages: number;
    };
    resources: FdoBusiness[];
}
export declare function readUserAdminPermission(): Promise<FdoPermissionRule[]>;
export declare function readUserBusinessPermission(businessId: string): Promise<FdoPermissionRule[]>;
export declare function readManagableBusinesses(): Promise<FdoBusiness[]>;
export declare function readPaginatedBusinesses(skip: number, limit: number, search?: string): Promise<PaginatedBusinessesResponse>;
export declare function readBusiness(businessId: string): Promise<FdoBusiness>;
export declare function readRestaurantSetting(restaurantId: string): Promise<FdoRestaurantSetting>;
export declare function readBusinessRestaurants(businessId: string): Promise<FdoRestaurant[]>;
export declare function readBusinessRestaurant(restaurantId: string): Promise<FdoRestaurant>;
export declare function readIsAgent(): Promise<{
    isAgent: boolean;
}>;
export declare function debugUser(phoneNumber: string): Promise<string>;
export declare function stopDebugUser(): Promise<string>;
export type PublicSettingApi = FdoPublicSetting & {
    aiSettings: {
        remy: {
            enable: boolean;
        };
    };
};
export declare function getPublicSetting(): Promise<PublicSettingApi>;
export declare const baseClientInstance: (url: string) => AxiosInstance;
export declare function extractAxiosData<T>(response: AxiosResponse<T>): T;
export declare const accountService: {
    updateUserProfile(profile: {
        displayName: string;
        email: string;
    }): Promise<{
        accessToken: string;
    }>;
    readUserProfile(): Promise<FdoUser>;
    loginByPhonePassword({ phoneNumber, password }: {
        phoneNumber: string;
        password: string;
    }): Promise<{
        accessToken: string;
    }>;
    resetPassword({ customToken, password }: {
        customToken: string;
        password: string;
    }): Promise<{
        accessToken: string;
    }>;
};
//# sourceMappingURL=index.d.ts.map