import { Access, Chat, Environment, OEMBED_ACTION_TYPE, OEMBED_TYPES, User } from '../common.js';
import HandlerResponse from '../response-objects/handler-response.js';
import UnfurlResponse from '../response-objects/unfurl-response.js';
import OembedActions from '../response-objects/oembed-actions.js';
export interface LinkPreviewRequest {
    user: User;
    environment: Environment;
    access: Access;
    chat: Chat;
    url: string;
    domain: string;
    target: Record<string, unknown>;
}
export default class LinkPreviewHandler {
    previewHandler(handler: (req: LinkPreviewRequest, res: UnfurlResponse, ...args: Array<unknown>) => Promise<UnfurlResponse>): void;
    actionHandler(handler: (req: LinkPreviewRequest, res: HandlerResponse, ...args: Array<unknown>) => Promise<HandlerResponse>): void;
    menuHandler(handler: (req: LinkPreviewRequest, res: Array<OembedActions>, ...args: Array<unknown>) => Promise<Array<OembedActions>>): void;
    afterSendHandler(handler: (req: LinkPreviewRequest, res: HandlerResponse, ...args: Array<unknown>) => Promise<HandlerResponse>): void;
    newUnfurlResponse(type: OEMBED_TYPES): UnfurlResponse;
    newOembedActions(type: OEMBED_ACTION_TYPE): OembedActions;
}
