import { UmbPreviewRepository } from '../repository/preview.repository.js'; import { UmbControllerBase } from '../../../libs/class-api/index.js'; import type { Observable } from '../../../external/rxjs/index.js'; import type { UmbControllerHost } from '../../../libs/controller-api/index.js'; export interface UmbPreviewSessionRenewalArgs { unique?: string; culture?: string; segment?: string; } /** * Keeps the website preview session alive for as long as the back-office session is, by asking the server to * renew it whenever the back-office session is renewed. */ export declare class UmbPreviewSessionRenewalController extends UmbControllerBase { #private; /** * Creates a new {@link UmbPreviewSessionRenewalController}. * @param {UmbControllerHost} host - The controller host. * @param {UmbPreviewRepository} [previewRepository] - Optional repository override; defaults to a new * {@link UmbPreviewRepository}. Intended for testing. */ constructor(host: UmbControllerHost, previewRepository?: UmbPreviewRepository); /** * Renews the preview session each time the given back-office session emits a live session. * @param {Observable} session - The back-office session; emits a falsy value when there is no session. * @param {() => UmbPreviewSessionRenewalArgs} getArgs - Provides the document currently being previewed. */ observeSession(session: Observable, getArgs: () => UmbPreviewSessionRenewalArgs): void; /** * Renews the preview session for the given document. * @param {UmbPreviewSessionRenewalArgs} args - The document currently being previewed. * @returns {Promise} Resolves once the renewal has completed or failed. */ renew(args: UmbPreviewSessionRenewalArgs): Promise; }