import { LayoutRecordManager } from './layoutRecordManager.js';
import { type Script, type ScriptResult } from '../types.js';
import { type LayoutInterface } from './layoutInterface.js';
import { type LayoutBase } from './layoutBase.js';
import { type DatabaseBase } from '../connection/databaseBase.js';
import { type ApiLayoutMetadata } from '../models/apiResults.js';
export declare class Layout<T extends LayoutInterface> implements LayoutBase {
    readonly database: DatabaseBase;
    readonly name: string;
    readonly records: LayoutRecordManager<T>;
    metadata: ApiLayoutMetadata | null;
    constructor(database: DatabaseBase, name: string);
    get endpoint(): string;
    /**
     * Executes a FileMaker script on this layout asynchronously and returns the result.
     * @param {Script} script - The script to be executed.
     * @returns {Promise<ScriptResult>} - A promise that resolves to the script result or rejects with an error.
     */
    runScript(script: Script): Promise<ScriptResult>;
    /**
     * Retrieves the layout metadata
     *
     * @returns {Promise<ApiLayoutMetadata>} The layout metadata.
     * @throws {FMError} If an error occurs during the API request.
     */
    getLayoutMeta(): Promise<ApiLayoutMetadata>;
}
