import * as cdk from '@aws-cdk/core';
import { GlobalSecondaryIndexProps, Table, TableProps } from '@aws-cdk/aws-dynamodb';
import * as lambda from '@aws-cdk/aws-lambda';
export interface StackSpotDynamoDBTableProps {
    readonly tableConfiguration: TableProps;
    readonly gsis?: [GlobalSecondaryIndexProps];
    readonly lambdasConfiguration?: StackSpotDynamoDBTableLambdasConfigurationProps;
    readonly generateRepository?: boolean;
    readonly repositoryGenerationConfiguration?: StackSpotDynamoDBTableRepositoryGenerationConfigurationProps;
}
export interface StackSpotDynamoDBTableBackendLambdas {
    [operationId: string]: lambda.Function;
}
export interface StackSpotDynamoDBTableLambdasConfigurationProps {
    readonly lambdasById: StackSpotDynamoDBTableBackendLambdas;
    readonly tableNameEnvironmentVariable: string;
    readonly readOnly?: [string];
}
export interface StackSpotDynamoDBTableRepositoryGenerationConfigurationProps {
    readonly sourceDir?: string;
    readonly tracing?: boolean;
}
export declare class StackSpotDynamoDBTable extends Table {
    private readonly repositoryCodegen?;
    protected readonly props: StackSpotDynamoDBTableProps;
    constructor(scope: cdk.Construct, id: string, props: StackSpotDynamoDBTableProps);
    private configureGlobalSecondaryIndexes;
    private configureLambdasPermission;
    private configReadWriteLambdas;
    private configReadOnlyLambdas;
    private getLambdasByGrantType;
    private configLambdas;
}
