type CapabilitiesAllowDenyList = {
	allow?: boolean | string[];
	deny?: boolean | string[];
};

type ConnectionOptions = {
	strict?: boolean;
	query_timeout?: number;
	transaction_timeout?: number;
	capabilities?:
		| boolean
		| {
			scripting?: boolean;
			guest_access?: boolean;
			live_query_notifications?: boolean;
			functions?: boolean | string[] | CapabilitiesAllowDenyList;
			network_targets?: boolean | string[] | CapabilitiesAllowDenyList;
			experimental?: boolean | string[] | CapabilitiesAllowDenyList;
		};
};

export declare class SurrealNodeEngine {
  execute(data: Uint8Array): Promise<Uint8Array>
  static connect(endpoint: string, opts?: ConnectionOptions): Promise<SurrealNodeEngine>
  export(config?: Uint8Array | undefined | null): Promise<string>
  import(input: string): Promise<void>
  static version(): string
  free(): Promise<void>
}
