blob: 7ee9915ccfe8a43aed054329a56103a5f0949d60 [file]
/**
* @license
* Copyright 2020 Google LLC
* SPDX-License-Identifier: Apache-2.0
*/
import {ChangeInfo, ConfigInfo, RevisionInfo} from './rest-api';
import {PluginApi} from './plugin';
export declare interface GerritElementExtensions {
content?: HTMLElement;
change?: ChangeInfo;
revision?: RevisionInfo;
token?: string;
repoName?: string;
config?: ConfigInfo;
plugin?: PluginApi;
}
export type PluginElement = HTMLElement & GerritElementExtensions;
export type HookCallback<T extends PluginElement> = (el: T) => void;
export declare interface RegisterOptions {
/** Defaults to empty string. */
slot?: string;
/** Defaults to false. */
replace?: boolean;
}
export declare interface HookApi<T extends PluginElement> {
onAttached(callback: HookCallback<T>): HookApi<T>;
onDetached(callback: HookCallback<T>): HookApi<T>;
getAllAttached(): HTMLElement[];
getLastAttached(): Promise<HTMLElement>;
getModuleName(): string;
handleInstanceDetached(instance: HTMLElement): void;
handleInstanceAttached(instance: HTMLElement): void;
}