import { LayoutRecord } from '../records/layoutRecord.js';
import { type LayoutInterface } from './layoutInterface.js';
import { type LayoutBase } from './layoutBase.js';
import { type GetOperationOptions, RecordGetOperation } from '../records/getOperations/recordGetOperation.js';
import { type PickPortals, type RecordFetchOptions } from '../types.js';
/**
 * Manager class for handling layout records.
 */
export declare class LayoutRecordManager<T extends LayoutInterface> {
    readonly layout: LayoutBase;
    constructor(layout: LayoutBase);
    /**
     * Creates a new layout record with the provided options.
     *
     * @param {OPTIONS} options - The options for creating the layout record.
     * @return {Promise<LayoutRecord<PickPortals<T, OPTIONS['portals'][number]>>>}
     * The newly created layout record.
     */
    create<OPTIONS extends RecordFetchOptions>(options: OPTIONS): Promise<LayoutRecord<PickPortals<T, OPTIONS['portals'][number]>>>;
    /**
     * Retrieves a layout record based on the given recordId.
     *
     * @param {number} recordId - The identifier of the record to retrieve.
     *
     * @returns {Promise<LayoutRecord<PickPortals<T, never>>>} - A Promise that resolves with the retrieved layout record.
     */
    get(recordId: number): Promise<LayoutRecord<PickPortals<T, never>>>;
    /**
     * Creates a new instance of RecordGetOperation with the given options.
     *
     * @param {Array} options - An array of options for the operation.
     * @return {RecordGetOperation} - A new instance of RecordGetOperation.
     */
    list<OPTIONS extends GetOperationOptions<T>>(options: OPTIONS): RecordGetOperation<T, OPTIONS>;
}
