import type { SrpcMeta } from '../../srpc/types';
import type { MeshSrpcServerOptions } from './mesh-srpc-server';
/**
 * The application configuration required to run a Redis-backed sRPC mesh
 * with authenticated direct peer links. Applications may extend this shape
 * with their own mesh prerequisites.
 */
export interface MeshSrpcConfiguration {
    MESH_LINK_NAMESPACE: string;
    REDIS_HOST?: string;
    REDIS_SENTINEL_HOST?: string;
    MESH_REDIS_HOST?: string;
    MESH_REDIS_SENTINEL_HOST?: string;
    MESH_LINK_ADVERTISE_URL?: string;
    MESH_LINK_PATH: string;
    MESH_LINK_SECRET?: string;
    MESH_LINK_CONNECT_TIMEOUT_MS: number;
    MESH_LINK_REQUEST_TIMEOUT_MS: number;
    MESH_LINK_IDLE_TIMEOUT_MS: number;
    MESH_LINK_MAX_FRAME_BYTES: number;
    MESH_LINK_MAX_BUFFERED_BYTES: number;
}
export interface MeshSrpcServerConfigurationOptions {
    /** A stable client-population segment, for example `devices` or `endpoints`. */
    meshKeySuffix: string;
    /** Application WebSocket paths that must never be claimed by the mesh link. */
    clientWebSocketPaths?: readonly string[];
}
export type MeshSrpcServerConfiguration = Pick<MeshSrpcServerOptions<SrpcMeta>, 'meshKey' | 'meshLink' | 'meshOptions'>;
/**
 * Construct the standard MeshSrpcServer options and reject incomplete or
 * unsafe infrastructure before an application accepts client connections.
 */
export declare function getMeshSrpcServerOptions(config: MeshSrpcConfiguration, options: MeshSrpcServerConfigurationOptions): MeshSrpcServerConfiguration;
export declare function validateMeshSrpcConfiguration(config: MeshSrpcConfiguration, options: MeshSrpcServerConfigurationOptions): void;
//# sourceMappingURL=mesh-srpc-configuration.d.ts.map