import { Asset, ClaimClassicTickerParams, Context, CreateAssetWithTickerParams, Identity, ReserveTickerParams, TickerReservation } from "./internal";
import { ProcedureMethod } from "./types";
/**
 * Handles all Asset related functionality
 */
export declare class Assets {
    private context;
    /**
     * @hidden
     */
    constructor(context: Context);
    /**
     * Reserve a ticker symbol under the ownership of the signing Identity to later use in the creation of an Asset.
     *   The ticker will expire after a set amount of time, after which other users can reserve it
     */
    reserveTicker: ProcedureMethod<ReserveTickerParams, TickerReservation>;
    /**
     * Claim a ticker symbol that was reserved in Polymath Classic (Ethereum). The Ethereum Account
     *   that owns the ticker must sign a special message that contains the DID of the Identity that will own the ticker
     *   in Polymesh, and provide the signed data to this call
     */
    claimClassicTicker: ProcedureMethod<ClaimClassicTickerParams, TickerReservation>;
    /**
     * Create an Asset
     *
     * @note if ticker is already reserved, then required role:
     *   - Ticker Owner
     */
    createAsset: ProcedureMethod<CreateAssetWithTickerParams, Asset>;
    /**
     * Retrieve all the ticker reservations currently owned by an Identity. This doesn't include Assets that
     *   have already been launched
     *
     * @param args.owner - defaults to the signing Identity
     *
     * @note reservations with unreadable characters in their tickers will be left out
     */
    getTickerReservations(args?: {
        owner: string | Identity;
    }): Promise<TickerReservation[]>;
    /**
     * Retrieve a Ticker Reservation
     *
     * @param args.ticker - Asset ticker
     */
    getTickerReservation(args: {
        ticker: string;
    }): TickerReservation;
    /**
     * Retrieve all of the Assets owned by an Identity
     *
     * @param args.owner - Identity representation or Identity ID as stored in the blockchain
     *
     * @note Assets with unreadable characters in their tickers will be left out
     */
    getAssets(args?: {
        owner: string | Identity;
    }): Promise<Asset[]>;
    /**
     * Retrieve an Asset
     *
     * @param args.ticker - Asset ticker
     */
    getAsset(args: {
        ticker: string;
    }): Promise<Asset>;
}
//# sourceMappingURL=Assets.d.ts.map