import { MembraneClient, IntegrationSpecificElementSelector, WorkspaceElementType } from '@membranehq/sdk'; import { MutatorOptions } from 'swr'; export interface BaseElementAccessor { getUniqueIdentifier?(): string; get(): Promise; patch?(data: Partial): Promise; put?(data: UpdateRequest): Promise; archive?(): Promise; create?(data: CreateRequest): Promise; } export declare function useElement>(type: WorkspaceElementType, selector: IntegrationSpecificElementSelector | string | undefined, accessorGenerator: (integrationAppClient: MembraneClient) => ElementAccessor | undefined): { accessor: ElementAccessor | undefined; item: Element | undefined; loading: boolean; saving: boolean; error: any; refresh: () => Promise; refreshing: boolean; create: (data: CreateRequest) => Promise; patch: (data: Partial, options?: Omit, "optimisticData"> & { optimisticData?: Element; }) => Promise; put: (data: UpdateRequest, options?: Omit, "optimisticData"> & { optimisticData?: Element; }) => Promise; archive: () => Promise; };