import type { Client } from 'openapi-fetch';
import type { RequestOptions } from './common.js';
import type { operations, PortalToken, paths } from './schemas.js';
/**
 * Portal
 * Manage portal tokens.
 */
export declare class Portal {
    private client;
    constructor(client: Client<paths, `${string}/${string}`>);
    /**
     * Create a consumer portal token
     * @param request - The request body
     * @param options - The request options
     * @returns The portal token
     */
    create(body: PortalToken, options?: RequestOptions): Promise<{
        readonly id?: string;
        subject: string;
        readonly expiresAt?: Date;
        readonly expired?: boolean;
        readonly createdAt?: Date;
        readonly token?: string;
        allowedMeterSlugs?: string[];
    } | undefined>;
    /**
     * List consumer portal tokens
     * @param query - The query parameters
     * @param options - The request options
     * @returns The portal tokens
     */
    list(query?: operations['listPortalTokens']['parameters']['query'], options?: RequestOptions): Promise<{
        readonly id?: string;
        subject: string;
        readonly expiresAt?: Date;
        readonly expired?: boolean;
        readonly createdAt?: Date;
        readonly token?: string;
        allowedMeterSlugs?: string[];
    }[] | undefined>;
    /**
     * Invalidate consumer portal tokens
     * @param body - The id or subject to invalidate
     * @param options - The request options
     * @returns The portal token
     */
    invalidate(body: operations['invalidatePortalTokens']['requestBody']['content']['application/json'], options?: RequestOptions): Promise<undefined>;
}
