import type { AlbumUnion, Artist, SearchV2, HomeSection } from './spotify.ts';
interface Variables {
    buildVer: string;
    buildDate: string;
    clientVersion: string;
    serverTime: string;
}
interface SecretBytes {
    version: number;
    secret: number[];
}
interface AccessToken {
    clientId: string;
    accessToken: string;
    accessTokenExpirationTimestampMs: number;
}
interface ClientToken {
    token: string;
    refreshAt: number;
}
interface SearchOptions {
    offset?: number;
    limit?: number;
    numberOfTopResults?: number;
    includeAudiobooks?: boolean;
    includeArtistHasConcertsField?: boolean;
    includePreReleases?: boolean;
    includeLocalConcertsField?: boolean;
    includeAuthors?: boolean;
    [key: string]: unknown;
}
declare class Spotify {
    $latestSecret: SecretBytes;
    deviceId: string;
    cookie: string;
    customUserAgent: string;
    accessToken: AccessToken;
    clientToken: ClientToken;
    variables?: Variables;
    constructor();
    $fetchSecrets(): Promise<void>;
    setUserAgent(userAgent: string): void;
    getVariables(): Promise<Variables>;
    toSecret(input: number[]): Buffer;
    generateTOTP(timestamp?: number): string;
    pullAccessToken(): Promise<void>;
    pullClientToken(): Promise<void>;
    getHeaders(): Promise<Record<string, string>>;
    search(query: string, opts?: SearchOptions): Promise<SearchV2>;
    getPopular(timezone?: string): Promise<HomeSection[]>;
    getAlbum(uri: string): Promise<AlbumUnion>;
    getArtist(uri: string): Promise<Artist>;
}
export default Spotify;
