import { StreamID } from '@streamr/protocol';
import { EthereumAddress, Logger } from '@streamr/utils';
import { Stream } from '../Stream';
import { ChainPermissions, StreamPermission } from '../permission';
import { TheGraphClient } from '@streamr/utils';
import { StreamQueryResult } from './StreamRegistry';
export interface SearchStreamsPermissionFilter {
    user: string;
    allOf?: StreamPermission[];
    anyOf?: StreamPermission[];
    allowPublic: boolean;
}
export interface SearchStreamsOrderBy {
    field: 'id' | 'createdAt' | 'updatedAt';
    direction: 'asc' | 'desc';
}
export type SearchStreamsResultItem = {
    id: string;
    userAddress: EthereumAddress;
    stream: StreamQueryResult;
} & ChainPermissions;
export declare const searchStreams: (term: string | undefined, permissionFilter: SearchStreamsPermissionFilter | undefined, orderBy: SearchStreamsOrderBy, theGraphClient: TheGraphClient, parseStream: (id: StreamID, metadata: string) => Stream, logger: Logger) => AsyncGenerator<Stream>;
