import { Kazagumo } from '../../Kazagumo';
import { RawTrack, ResolveOptions } from '../../Modules/Interfaces';
import { Track } from 'shoukaku';
export declare class KazagumoTrack {
    private readonly raw;
    /**
     * Kazagumo Instance
     */
    kazagumo: Kazagumo | undefined;
    /**
     * Track Requester
     */
    requester: unknown | undefined;
    /** Track's Base64 */
    track: string;
    /** Track's source */
    sourceName: string;
    /** Track's title */
    title: string;
    /** Track's URI */
    uri?: string;
    /** Track's identifier */
    identifier: string;
    /** Whether the track is seekable */
    isSeekable: boolean;
    /** Whether the track is a stream */
    isStream: boolean;
    /** Track's author */
    author: string | undefined;
    /** Track's length */
    length: number | undefined;
    /** Track's position (I don't know this) */
    position: number | undefined;
    /** Track's thumbnail, if available */
    thumbnail: string | undefined;
    /** The YouTube/soundcloud URI for spotify and other unsupported source */
    realUri?: string;
    resolvedBySource: boolean;
    constructor(raw: Track, requester: unknown);
    /**
     * Get json of this track
     * @returns {RawTrack}
     */
    getRaw(): RawTrack;
    /**
     * Set kazagumo instance
     * @param kazagumo Kazagumo instance
     * @returns KazagumoTrack
     */
    setKazagumo(kazagumo: Kazagumo): KazagumoTrack;
    /**
     * Whether the track is ready to play or need to be solved
     */
    get readyToPlay(): boolean;
    /**
     * Resolve the track
     * @param options Resolve options
     * @returns Promise<KazagumoTrack>
     */
    resolve(options?: ResolveOptions): Promise<KazagumoTrack>;
    private getTrack;
}
