import { ModelDetails } from '../data';
export declare const ModelName = "lock";
export declare type Lock = {
    id: string;
    createdAt: Date;
    updatedAt?: Date;
    user: string;
    env: string;
    active: boolean;
    uberlock: boolean;
    meta: string;
};
export declare type LockRejected = {
    currentLock: Lock;
};
export declare type LockNotActiveByUser = {
    notLockedBy: string;
};
export declare type LockInputArgs = {
    user: string;
    env: string;
    meta?: string;
    uberlock?: boolean;
};
export declare type ILock = {
    lock: (args: LockInputArgs) => Promise<Lock | LockRejected>;
    release: (args: LockInputArgs) => Promise<Lock | LockNotActiveByUser | LockRejected>;
    locks: (env: string, user?: string) => Promise<Lock[]>;
};
export declare type LockOptionArgs = {
    dynamoDBRegion?: string;
    dynamoDbUri?: string;
};
export declare const LockModelDetails: ModelDetails<Lock>;
export declare const Locker: ({ dynamoDBRegion, dynamoDbUri, }: LockOptionArgs) => Promise<ILock>;
//# sourceMappingURL=index.d.ts.map