export interface TestAgentClient {
readonly principal: "agent";
readonly agentId?: AgentId;
close(): Effect.Effect<void>;
subscribe<D extends AnyNotificationDefinition>(
definition: D,
refinement?: (params: NotificationParamsOf<D>) => boolean,
): Stream.Stream<NotificationParamsOf<D>, NotConnectedError>;
subscribeAll(
refinement?: (
delivery: NotificationDelivery<AnyNotificationDefinition>,
) => boolean,
): Stream.Stream<
NotificationDelivery<AnyNotificationDefinition>,
NotConnectedError
>;
sendRpc<D extends AnyAgentCallableRpcDefinition>(
definition: D,
params: ClientDefinitionPayload<D>,
opts?: RpcCallOptions,
): Effect.Effect<ClientDefinitionSuccess<D>, ClientDefinitionError<D>>;
call<Tag extends AgentCallableTag>(
tag: Tag,
payload: PayloadForTag<AgentCallableRpcs, Tag>,
opts?: RpcCallOptions,
): Effect.Effect<SuccessForTag<AgentCallableRpcs, Tag>, AgentRpcError<Tag>>;
}