import { AppHost, ExtensionItem, PrivateExtensionSlot, Shell, SlotKey, CustomExtensionSlot, CustomExtensionSlotHandler, PrivateAppHost } from './API'; export interface AnyExtensionSlot { readonly name: string; readonly declaringShell?: Shell; } interface ItemsDataStructure { get(): ExtensionItem[]; add(item: ExtensionItem): void; discardBy(predicate: (item: ExtensionItem) => boolean): void; } export type CustomCreateExtensionSlot = () => ItemsDataStructure; export interface CreateExtensionSlotOptions { declaringShell?: Shell; customCreateExtensionSlot?: CustomCreateExtensionSlot; } export declare function createExtensionSlot(key: SlotKey, host: PrivateAppHost, options?: CreateExtensionSlotOptions): PrivateExtensionSlot & AnyExtensionSlot; export declare function createCustomExtensionSlot(key: SlotKey, handler: CustomExtensionSlotHandler, host: AppHost, declaringShell?: Shell): CustomExtensionSlot & AnyExtensionSlot; export {}; //# sourceMappingURL=extensionSlot.d.ts.map