import { Client } from "../client.js";
import { Token } from "../structures/tokens.js";
import { Manager } from "./manager.js";
import { ReqToken } from "types/token.js";
export declare class TokenManager extends Manager<Token> {
    constructor(client: Client);
    fetch(id: string, options?: {
        cache?: boolean;
        force?: boolean;
    }): Promise<Token>;
    count(): Promise<number>;
    create(requestToken: ReqToken, options?: {
        cache?: boolean;
        force?: boolean;
    }): Promise<Token>;
    setName(id: string, name: string, options?: {
        cache?: boolean;
    }): Promise<Token>;
    setDescription(id: string, description: string, options?: {
        cache?: boolean;
    }): Promise<Token>;
    setPermissions(id: string, permissions: string[], options?: {
        cache?: boolean;
    }): Promise<Token>;
    setExpiration(id: string, expiration: Date, options?: {
        cache?: boolean;
    }): Promise<Token>;
    /**
     * @todo Implement in Backend
     * Lists user's tokens with pagination
     * @param options Pagination and filtering options
     * @returns A list of user's tokens and pagination info
     */
    list(options?: {
        page?: number;
        limit?: number;
        cache?: boolean;
    }): Promise<Token[]>;
    delete(id: string): Promise<void>;
}
