import type { Entity } from '../../../entity/index.js';
import type { InputValue, Schema, TransformedValue } from '../../../schema/index.js';
import type { IQueryCommand, Query, QueryOptions } from '../../../table/actions/query/index.js';
import { QueryCommand } from '../../../table/actions/query/queryCommand.js';
import type { Table } from '../../../table/index.js';
import { TableAction } from '../../../table/index.js';
import type { Overwrite } from '../../../types/index.js';
import { $meta, $options, $pattern, $schema } from './constants.js';
interface AccessPatternMetadata {
title?: string;
description?: string;
[x: string]: unknown;
}
type MergeOptions
, DEFAULT_OPTIONS extends QueryOptions, CONTEXT_OPTIONS extends QueryOptions> = QueryOptions extends DEFAULT_OPTIONS ? CONTEXT_OPTIONS : QueryOptions extends CONTEXT_OPTIONS ? DEFAULT_OPTIONS : Overwrite & CONTEXT_OPTIONS;
export declare class IAccessPattern = Query, DEFAULT_OPTIONS extends QueryOptions = QueryOptions, CONTEXT_OPTIONS extends QueryOptions = QueryOptions> extends TableAction {
static actionName: "access-pattern";
[$schema]?: SCHEMA;
[$pattern]?: (input: Schema extends SCHEMA ? any : TransformedValue) => QUERY & {
options?: CONTEXT_OPTIONS;
};
[$options]: DEFAULT_OPTIONS;
[$meta]: AccessPatternMetadata;
constructor(table: TABLE, entities?: ENTITIES, schema?: SCHEMA, pattern?: (input: TransformedValue) => QUERY & {
options?: CONTEXT_OPTIONS;
}, options?: DEFAULT_OPTIONS, meta?: AccessPatternMetadata);
query(input: InputValue): Table extends TABLE ? IQueryCommand : QueryCommand>;
}
export declare class AccessPattern = Query, DEFAULT_OPTIONS extends QueryOptions = QueryOptions, CONTEXT_OPTIONS extends QueryOptions = QueryOptions> extends IAccessPattern {
constructor(table: TABLE, entities?: ENTITIES, schema?: SCHEMA, pattern?: (input: TransformedValue) => QUERY & {
options?: CONTEXT_OPTIONS;
}, options?: DEFAULT_OPTIONS, meta?: AccessPatternMetadata);
entities(...nextEntities: NEXT_ENTITIES): AccessPattern ? DEFAULT_OPTIONS : QueryOptions, CONTEXT_OPTIONS extends QueryOptions ? CONTEXT_OPTIONS : QueryOptions>;
schema(nextSchema: NEXT_SCHEMA): AccessPattern;
pattern, NEXT_CONTEXT_OPTIONS extends QueryOptions>(nextPattern: (input: TransformedValue) => NEXT_QUERY & {
options?: NEXT_CONTEXT_OPTIONS;
}): AccessPattern;
options>(nextOptions: NEXT_OPTIONS | ((prevOptions: DEFAULT_OPTIONS) => NEXT_OPTIONS)): AccessPattern;
meta(nextMeta: AccessPatternMetadata): AccessPattern