import type { TApiClient, TApiConfig } from "./api-factory";
import type { TResource, TResourceConfig } from "./resource-factory";
type TModuleResources = Record<string, TResourceConfig<any>>;
type TModuleConfig<TResources extends TModuleResources> = {
    name: string;
    apiConfig: TApiConfig;
    resources: TResources;
    helpers?: Record<string, Function>;
};
type TModule<TResources extends TModuleResources> = {
    [K in keyof TResources]: TResources[K] extends TResourceConfig<infer TMethods> ? TResource<TMethods> : never;
} & {
    api: TApiClient;
};
export declare function createFyncModule<TResources extends TModuleResources>(config: TModuleConfig<TResources>): TModule<TResources>;
export declare function createApiBuilder<TResources extends TModuleResources>(defaultConfig: Partial<TApiConfig>): (userConfig: Partial<TApiConfig> & {
    token?: string;
}, resources: TResources) => TModule<TResources>;
export type { TModule, TModuleConfig, TModuleResources };
//# sourceMappingURL=module-factory.d.ts.map