import { ChangeFieldType, HexString, TheGraphClient, UserID } from '@streamr/utils';
import { ChainPermissions, StreamPermission } from '../permission';
import { StreamQueryResult } from './StreamRegistry';
export interface SearchStreamsPermissionFilter {
    userId: HexString;
    allOf?: StreamPermission[];
    anyOf?: StreamPermission[];
    allowPublic: boolean;
}
export type InternalSearchStreamsPermissionFilter = ChangeFieldType<SearchStreamsPermissionFilter, 'userId', UserID>;
export type SearchStreamsResultItem = {
    id: string;
    stream: StreamQueryResult;
} & ChainPermissions;
export declare const toInternalSearchStreamsPermissionFilter: (filter: SearchStreamsPermissionFilter) => InternalSearchStreamsPermissionFilter;
export declare function searchStreams(term: string | undefined, permissionFilter: InternalSearchStreamsPermissionFilter | undefined, theGraphClient: TheGraphClient): AsyncGenerator<SearchStreamsResultItem>;
