import type { ServiceDefinition } from "@restatedev/restate-sdk";
import * as restate from "@restatedev/restate-sdk";
import type { BaseClientMethods, TransformServiceHandler, TypedRun } from "./common-types";
export type ServiceHandlerContext = {
    ctx: restate.Context;
    runStep: TypedRun;
} & BaseClientMethods;
type TransformHandlers<THandlers> = {
    [K in keyof THandlers]: TransformServiceHandler<ServiceHandlerContext, THandlers[K]>;
};
export declare function createRestateService(name: string, SerdeClass: new <T>() => restate.Serde<T>): <THandlers extends {
    [key: string]: (context: ServiceHandlerContext, ...args: any[]) => Promise<any>;
}>(handlers: THandlers) => ServiceDefinition<string, TransformHandlers<THandlers>>;
export { createRestateService as typedService };
//# sourceMappingURL=typed-service.d.ts.map