import { BaseNylasConnectorInterface } from "../connector/connector-interface"; import { ComponentInterface } from '../stencil-public-runtime'; import { CombinedStoreStateKeys, EventEmitterEventType, ExtractEventEmitterKeys, ExtractEventEmitterProperties } from './types'; import { HTMLStencilElement } from '../stencil-public-runtime'; export interface RegisteredComponent { name: string; element: HTMLStencilElement & { setProperty?: (key: string, value: any) => Promise; registerCallback?(): Promise; }; getStoresToProp?: keyof H; storeToProps?: Map; stateToProps?: Map; eventToProps?: Map, (event: CustomEvent]>>, nylasConnector: B) => Promise>; localPropsToProp?: Map; authToProp?: keyof H; connectorToProp?: keyof H; registrationEventName?: string; unregistrationEventName?: string; } export declare function createComponentEvent(instance: T, registeredComponent: RegisteredComponent, eventName?: string): CustomEvent>; export declare function unregisterComponentEvent(instance: T, registeredComponent: RegisteredComponent, eventName?: string): CustomEvent>; export interface RegisterComponentConfig extends Omit, 'eventToProps' | 'name' | 'element'> { name: string; eventToProps?: Partial<{ [P in ExtractEventEmitterProperties as P['key']]: (event: CustomEvent, nylasConnector: B) => Promise; }>; fireRegisterEvent?: boolean | ((host: H) => boolean); } export interface NylasComponentInterface extends ComponentInterface { authToProp?: keyof this; connectorToProp?: keyof this; registerCallback?: () => Promise; } export declare function RegisterComponent>(config: RegisterComponentConfig>): (target: H, propKey: string) => void;