import { RecordBase } from './recordBase.js';
import { type extraBodyOptions, RecordTypes } from '../types.js';
import { type RecordFieldsMap } from '../layouts/recordFieldsMap.js';
import { type PortalBase } from './portalBase.js';
import { type Field, type FieldValue } from './field.js';
/**
 * Represents a PortalRecord, which is a record in a portal within a parent record.
 * @template T - The type of the record's field map.
 */
export declare class PortalRecord<T extends RecordFieldsMap> extends RecordBase<T> {
    readonly portal: PortalBase<T>;
    readonly type = RecordTypes.PORTAL;
    constructor(record: RecordBase<any>, portal: PortalBase<any>, recordId: number, modId?: number, fieldData?: {});
    _onSave(): void;
    /**
     * Commits the parent record, and in turn this one.
     *
     * @param {extraBodyOptions} [extraBody={}] - The optional extra body options.
     * @returns {Promise} - A promise that resolves when the record is committed.
     */
    commit(extraBody?: extraBodyOptions): Promise<import("./layoutRecord.js").LayoutRecord<import("../index.js").LayoutInterface>>;
    toObject(fieldFilter: (a: Field<FieldValue>) => boolean): {
        modId?: string;
        recordId?: string;
    } & Record<string, string>;
}
