import type { RestateEndpoint } from "../index.js";
import type { JournalValueCodec, ServiceDefinition, VirtualObjectDefinition, WorkflowDefinition } from "@restatedev/restate-sdk-core";
import { IncomingMessage, ServerResponse } from "node:http";
import { Http2ServerRequest, Http2ServerResponse } from "node:http2";
import type { LoggerTransport } from "../logging/logger_transport.js";
import type { DefaultServiceOptions } from "../endpoint.js";
export declare class NodeEndpoint implements RestateEndpoint {
    private builder;
    bind<P extends string, M>(definition: ServiceDefinition<P, M> | VirtualObjectDefinition<P, M> | WorkflowDefinition<P, M>): RestateEndpoint;
    withIdentityV1(...keys: string[]): RestateEndpoint;
    defaultServiceOptions(options: DefaultServiceOptions): RestateEndpoint;
    setLogger(logger: LoggerTransport): RestateEndpoint;
    journalValueCodecProvider(codecProvider: () => Promise<JournalValueCodec>): RestateEndpoint;
    http2Handler(options?: {
        bidirectional?: boolean;
    }): (request: Http2ServerRequest, response: Http2ServerResponse) => void;
    http1Handler(options?: {
        bidirectional?: boolean;
    }): (request: IncomingMessage, response: ServerResponse) => void;
    handler(options?: {
        bidirectional?: boolean;
    }): {
        (request: IncomingMessage, response: ServerResponse): void;
        (request: Http2ServerRequest, response: Http2ServerResponse): void;
    };
    listen(port?: number): Promise<number>;
}
//# sourceMappingURL=node_endpoint.d.ts.map