/** * Copyright 2023 Fluence Labs Limited * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ import { RelayConnectionConfig } from "../connection/RelayConnection.js"; import { FluencePeer, PeerConfig } from "../jsPeer/FluencePeer.js"; import { KeyPair } from "../keypair/index.js"; import { IMarineHost } from "../marine/interfaces.js"; import { ClientConfig, IFluenceClient, ConnectionState, RelayOptions } from "./types.js"; export declare const makeClientPeerConfig: (relay: RelayOptions, config: ClientConfig) => Promise<{ peerConfig: PeerConfig; relayConfig: RelayConnectionConfig; keyPair: KeyPair; }>; export declare class ClientPeer extends FluencePeer implements IFluenceClient { constructor(peerConfig: PeerConfig, relayConfig: RelayConnectionConfig, keyPair: KeyPair, marine: IMarineHost); connectionState: ConnectionState; connectionStateChangeHandler: (state: ConnectionState) => void; getRelayPeerId(): string; onConnectionStateChange(handler: (state: ConnectionState) => void): ConnectionState; private changeConnectionState; /** * Connect to the Fluence network */ connect(): Promise; disconnect(): Promise; start(): Promise; stop(): Promise; }