import { Partner } from 'raiden-swagger-sdk';
import { Observable } from 'rxjs';
import { Configuration, TokensApi } from './apis';
export declare type TokenNetworkAddress = string;
export declare type TokenAddress = string;
export declare class Tokens {
    private readonly tokensApi;
    static create(config?: Configuration): Tokens;
    constructor(tokensApi: TokensApi);
    /**
     * Addresses of all registered tokens
     *
     * @since 0.100.3
     * @throws {@link RaidenAPIError}
     * @see {@link https://raiden-network.readthedocs.io/en/latest/rest_api.html#get--api-(version)-tokens}
     */
    findAllRegistered(): Observable<ReadonlyArray<TokenAddress>>;
    /**
     * Token network address
     *
     * @remarks
     * The address of the corresponding token network for the given token, if the token is registered.
     * @param tokenAddress - The address of the token
     * @since 0.100.3
     * @throws {@link RaidenAPIError}
     * @see {@link https://raiden-network.readthedocs.io/en/latest/rest_api.html#get--api-(version)-tokens-(token_address)}
     */
    networkAddressFor(tokenAddress: string): Observable<TokenNetworkAddress>;
    /**
     * List of all partners with whom you have non-settled channels for a certain token
     *
     * @param tokenAddress - the address of the token
     *
     * @since 0.100.3
     * @throws {@link RaidenAPIError}
     * @see {@link https://raiden-network.readthedocs.io/en/latest/rest_api.html#get--api-(version)-tokens-(token_address)-partners}
     */
    partners(tokenAddress: string): Observable<ReadonlyArray<Readonly<Partner>>>;
    /**
     * Register a token
     *
     * @remarks
     * If a token is not registered yet
     * (i.e.: A token network for that token does not exist in the registry),
     *  we need to register it by deploying a token network contract for
     *  that token.
     * @param tokenAddress - the address of the token
     *
     * @since 0.100.3
     * @throws {@link RaidenAPIError}
     * @see {@link https://raiden-network.readthedocs.io/en/latest/rest_api.html#put--api-(version)-tokens-(token_address)}
     */
    register(tokenAddress: string): Observable<Readonly<TokenNetworkAddress>>;
}
